MarketInfoResponse.java
package org.vlaskin.moexiss.entity;
import lombok.Builder;
import lombok.Getter;
import lombok.ToString;
import java.util.List;
/**
* Составной ответ с режимами торгов рынка и описанием полей его таблиц.
*/
@Getter
@ToString
public final class MarketInfoResponse
{
private final List<BoardResponse> boards;
private final List<BoardGroupResponse> boardGroups;
private final List<TableFieldResponse> securityFields;
private final List<TableFieldResponse> marketDataFields;
private final List<TableFieldResponse> tradeFields;
private final List<TableFieldResponse> orderBookFields;
private final List<TableFieldResponse> historyFields;
private final List<TableFieldResponse> tradeHistoryFields;
private final List<TableFieldResponse> marketDataYieldFields;
private final List<TableFieldResponse> tradeYieldFields;
private final List<TableFieldResponse> historyYieldFields;
private final List<TableFieldResponse> securityStatisticFields;
/**
* Создаёт неизменяемый составной ответ из секций описания рынка.
*
* @param boards режимы торгов
* @param boardGroups группы режимов торгов
* @param securityFields поля статических данных инструментов
* @param marketDataFields поля текущих рыночных данных
* @param tradeFields поля таблицы сделок
* @param orderBookFields поля стакана
* @param historyFields поля истории инструментов
* @param tradeHistoryFields поля истории сделок
* @param marketDataYieldFields поля текущих доходностей
* @param tradeYieldFields поля доходностей сделок
* @param historyYieldFields поля истории доходностей
* @param securityStatisticFields поля статистики инструментов
*/
@Builder
public MarketInfoResponse(List<BoardResponse> boards,
List<BoardGroupResponse> boardGroups,
List<TableFieldResponse> securityFields,
List<TableFieldResponse> marketDataFields,
List<TableFieldResponse> tradeFields,
List<TableFieldResponse> orderBookFields,
List<TableFieldResponse> historyFields,
List<TableFieldResponse> tradeHistoryFields,
List<TableFieldResponse> marketDataYieldFields,
List<TableFieldResponse> tradeYieldFields,
List<TableFieldResponse> historyYieldFields,
List<TableFieldResponse> securityStatisticFields)
{
this.boards = ResponseLists.immutableCopy(boards);
this.boardGroups = ResponseLists.immutableCopy(boardGroups);
this.securityFields = ResponseLists.immutableCopy(securityFields);
this.marketDataFields = ResponseLists.immutableCopy(marketDataFields);
this.tradeFields = ResponseLists.immutableCopy(tradeFields);
this.orderBookFields = ResponseLists.immutableCopy(orderBookFields);
this.historyFields = ResponseLists.immutableCopy(historyFields);
this.tradeHistoryFields = ResponseLists.immutableCopy(tradeHistoryFields);
this.marketDataYieldFields = ResponseLists.immutableCopy(marketDataYieldFields);
this.tradeYieldFields = ResponseLists.immutableCopy(tradeYieldFields);
this.historyYieldFields = ResponseLists.immutableCopy(historyYieldFields);
this.securityStatisticFields = ResponseLists.immutableCopy(securityStatisticFields);
}
}