DictionaryResponse.java

package org.vlaskin.moexiss.entity;

import lombok.Builder;
import lombok.Getter;
import lombok.ToString;

import java.util.List;

/**
 * Составной ответ со всеми справочниками MOEX ISS.
 */

@Getter
@ToString
public final class DictionaryResponse
{
    private final List<EngineResponse> engines;
    private final List<MarketResponse> markets;
    private final List<BoardResponse> boards;
    private final List<BoardGroupResponse> boardGroups;
    private final List<DurationResponse> durations;
    private final List<SecurityTypeResponse> securityTypes;
    private final List<SecurityGroupResponse> securityGroups;
    private final List<SecurityCollectionResponse> securityCollections;

    /**
     * @param engines торговые системы
     * @param markets рынки
     * @param boards режимы торгов
     * @param boardGroups группы режимов торгов
     * @param durations интервалы свечей
     * @param securityTypes типы инструментов
     * @param securityGroups группы инструментов
     * @param securityCollections коллекции инструментов
     */
    @Builder
    public DictionaryResponse(List<EngineResponse> engines,
                              List<MarketResponse> markets,
                              List<BoardResponse> boards,
                              List<BoardGroupResponse> boardGroups,
                              List<DurationResponse> durations,
                              List<SecurityTypeResponse> securityTypes,
                              List<SecurityGroupResponse> securityGroups,
                              List<SecurityCollectionResponse> securityCollections)
    {
        this.engines = ResponseLists.immutableCopy(engines);
        this.markets = ResponseLists.immutableCopy(markets);
        this.boards = ResponseLists.immutableCopy(boards);
        this.boardGroups = ResponseLists.immutableCopy(boardGroups);
        this.durations = ResponseLists.immutableCopy(durations);
        this.securityTypes = ResponseLists.immutableCopy(securityTypes);
        this.securityGroups = ResponseLists.immutableCopy(securityGroups);
        this.securityCollections = ResponseLists.immutableCopy(securityCollections);
    }
}