All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.farao_community.farao.virtual_hubs.json.VirtualHubsConfigurationSerializer Maven / Gradle / Ivy

The newest version!
/*
 * Copyright (c) 2020, RTE (http://www.rte-france.com)
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at https://mozilla.org/MPL/2.0/.
 */
package com.farao_community.farao.virtual_hubs.json;

import com.farao_community.farao.virtual_hubs.MarketArea;
import com.farao_community.farao.virtual_hubs.VirtualHub;
import com.farao_community.farao.virtual_hubs.VirtualHubsConfiguration;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;

import java.io.IOException;

/**
 * @author Sebastien Murgey {@literal }
 */
class VirtualHubsConfigurationSerializer extends JsonSerializer {
    @Override
    public void serialize(VirtualHubsConfiguration virtualHubsConfiguration, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
        jsonGenerator.writeStartObject();
        serializeMarketAreas(virtualHubsConfiguration, jsonGenerator);
        serializeVirtualHubs(virtualHubsConfiguration, jsonGenerator);
        jsonGenerator.writeEndObject();
    }

    private void serializeMarketAreas(VirtualHubsConfiguration virtualHubsConfiguration, JsonGenerator jsonGenerator) throws IOException {
        jsonGenerator.writeFieldName("marketAreas");
        jsonGenerator.writeStartArray();
        for (MarketArea marketArea : virtualHubsConfiguration.getMarketAreas()) {
            serializeMarketArea(marketArea, jsonGenerator);
        }
        jsonGenerator.writeEndArray();
    }

    private void serializeMarketArea(MarketArea marketArea, JsonGenerator jsonGenerator) throws IOException {
        jsonGenerator.writeStartObject();
        jsonGenerator.writeStringField("code", marketArea.getCode());
        jsonGenerator.writeStringField("eic", marketArea.getEic());
        jsonGenerator.writeBooleanField("isMcParticipant", marketArea.isMcParticipant());
        jsonGenerator.writeEndObject();
    }

    private void serializeVirtualHubs(VirtualHubsConfiguration virtualHubsConfiguration, JsonGenerator jsonGenerator) throws IOException {
        jsonGenerator.writeFieldName("virtualHubs");
        jsonGenerator.writeStartArray();
        for (VirtualHub virtualHub : virtualHubsConfiguration.getVirtualHubs()) {
            serializeVirtualHub(virtualHub, jsonGenerator);
        }
        jsonGenerator.writeEndArray();
    }

    private void serializeVirtualHub(VirtualHub virtualHub, JsonGenerator jsonGenerator) throws IOException {
        jsonGenerator.writeStartObject();
        jsonGenerator.writeStringField("code", virtualHub.getCode());
        jsonGenerator.writeStringField("eic", virtualHub.getEic());
        jsonGenerator.writeBooleanField("isMcParticipant", virtualHub.isMcParticipant());
        jsonGenerator.writeStringField("nodeName", virtualHub.getNodeName());
        jsonGenerator.writeStringField("marketArea", virtualHub.getRelatedMa().getCode());
        jsonGenerator.writeEndObject();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy