NadParameters.java
/**
* Copyright (c) 2023, 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 http://mozilla.org/MPL/2.0/.
* SPDX-License-Identifier: MPL-2.0
*/
package com.powsybl.nad;
import com.powsybl.iidm.network.Network;
import com.powsybl.nad.build.iidm.IntIdProvider;
import com.powsybl.nad.layout.BasicForceLayoutFactory;
import com.powsybl.nad.layout.LayoutFactory;
import com.powsybl.nad.layout.LayoutParameters;
import com.powsybl.nad.library.DefaultComponentLibrary;
import com.powsybl.nad.library.NadComponentLibrary;
import com.powsybl.nad.routing.StraightEdgeRouting;
import com.powsybl.nad.routing.EdgeRouting;
import com.powsybl.nad.svg.LabelProvider;
import com.powsybl.nad.svg.SvgParameters;
import com.powsybl.nad.svg.iidm.*;
import java.util.Objects;
/**
*
* @author Sophie Frasnedo {@literal <sophie.frasnedo at rte-france.com>}
*/
public class NadParameters {
private SvgParameters svgParameters = new SvgParameters();
private LayoutParameters layoutParameters = new LayoutParameters();
private StyleProviderFactory styleProviderFactory = TopologicalStyleProvider::new;
private LabelProviderFactory labelProviderFactory = DefaultLabelProvider::new;
private LayoutFactory layoutFactory = new BasicForceLayoutFactory();
private IdProviderFactory idProviderFactory = IntIdProvider::new;
private NadComponentLibrary componentLibrary = new DefaultComponentLibrary();
private EdgeRouting edgeRouting = new StraightEdgeRouting();
public SvgParameters getSvgParameters() {
return svgParameters;
}
public NadParameters setSvgParameters(SvgParameters svgParameters) {
this.svgParameters = Objects.requireNonNull(svgParameters);
return this;
}
public LayoutParameters getLayoutParameters() {
return layoutParameters;
}
public NadParameters setLayoutParameters(LayoutParameters layoutParameters) {
this.layoutParameters = Objects.requireNonNull(layoutParameters);
return this;
}
public StyleProviderFactory getStyleProviderFactory() {
return styleProviderFactory;
}
public NadParameters setStyleProviderFactory(StyleProviderFactory styleProviderFactory) {
this.styleProviderFactory = Objects.requireNonNull(styleProviderFactory);
return this;
}
public LabelProvider createLabelProvider(Network network) {
return labelProviderFactory.create(network, svgParameters);
}
public NadParameters setLabelProviderFactory(LabelProviderFactory labelProviderFactory) {
this.labelProviderFactory = Objects.requireNonNull(labelProviderFactory);
return this;
}
public LayoutFactory getLayoutFactory() {
return layoutFactory;
}
public NadParameters setLayoutFactory(LayoutFactory layoutFactory) {
this.layoutFactory = Objects.requireNonNull(layoutFactory);
return this;
}
public IdProviderFactory getIdProviderFactory() {
return idProviderFactory;
}
public NadParameters setIdProviderFactory(IdProviderFactory idProviderFactory) {
this.idProviderFactory = Objects.requireNonNull(idProviderFactory);
return this;
}
public NadComponentLibrary getComponentLibrary() {
return componentLibrary;
}
public NadParameters setComponentLibrary(NadComponentLibrary componentLibrary) {
this.componentLibrary = componentLibrary;
return this;
}
public EdgeRouting getEdgeRouting() {
return edgeRouting;
}
public NadParameters setEdgeRouting(EdgeRouting edgeRouting) {
this.edgeRouting = edgeRouting;
return this;
}
}