
com.fluxtion.server.lib.pnl.calculator.FluxtionPnlCalculatorBuilder Maven / Gradle / Ivy
/*
* SPDX-FileCopyrightText: © 2025 Gregory Higgins
* SPDX-License-Identifier: AGPL-3.0-only
*/
package com.fluxtion.server.lib.pnl.calculator;
import com.fluxtion.compiler.EventProcessorConfig;
import com.fluxtion.compiler.FluxtionCompilerConfig;
import com.fluxtion.compiler.FluxtionGraphBuilder;
import com.fluxtion.compiler.builder.dataflow.DataFlow;
import com.fluxtion.compiler.builder.dataflow.FlowBuilder;
import com.fluxtion.compiler.builder.dataflow.GroupByFlowBuilder;
import com.fluxtion.compiler.builder.dataflow.JoinFlowBuilder;
import com.fluxtion.runtime.audit.EventLogControlEvent;
import com.fluxtion.runtime.dataflow.groupby.GroupBy;
import com.fluxtion.runtime.event.Signal;
import com.fluxtion.runtime.node.NamedFeedTableNode;
import com.fluxtion.server.lib.pnl.*;
import com.fluxtion.server.lib.pnl.refdata.Instrument;
import com.fluxtion.server.lib.pnl.refdata.Symbol;
import lombok.Getter;
import java.util.Map;
import static com.fluxtion.server.lib.pnl.PnlCalculator.*;
/**
* Builds the {@link FluxtionPnlCalculator} AOT using the Fluxtion maven plugin.
*
* This build can be extended with a subclass or used as a utility to build a graph with the streaming nodes available
* through accessors
*/
@Getter
public class FluxtionPnlCalculatorBuilder implements FluxtionGraphBuilder {
private EventProcessorConfig eventProcessorConfig;
private FlowBuilder positionUpdateEob;
private FlowBuilder positionSnapshotReset;
private FlowBuilder tradeStream;
private FlowBuilder tradeBatchStream;
private GroupByFlowBuilder dealtInstPosition;
private GroupByFlowBuilder contraInstPosition;
private GroupByFlowBuilder dealtAndContraInstPosition;
private GroupByFlowBuilder contraAndDealtInstPosition;
private DerivedRateNode derivedRateNode;
private EventFeedConnector eventFeedConnector;
private FlowBuilder globalNetMtm;
private FlowBuilder