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

com.zepben.evolve.services.common.Resolvers.kt Maven / Gradle / Ivy

There is a newer version: 0.24.0rc1
Show newest version
/*
 * Copyright 2020 Zeppelin Bend Pty Ltd
 *
 * 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.zepben.evolve.services.common

import com.zepben.evolve.cim.iec61968.assetinfo.*
import com.zepben.evolve.cim.iec61968.assets.Asset
import com.zepben.evolve.cim.iec61968.assets.AssetOrganisationRole
import com.zepben.evolve.cim.iec61968.assets.Pole
import com.zepben.evolve.cim.iec61968.assets.Streetlight
import com.zepben.evolve.cim.iec61968.common.Location
import com.zepben.evolve.cim.iec61968.common.Organisation
import com.zepben.evolve.cim.iec61968.common.OrganisationRole
import com.zepben.evolve.cim.iec61968.customers.Customer
import com.zepben.evolve.cim.iec61968.customers.CustomerAgreement
import com.zepben.evolve.cim.iec61968.customers.PricingStructure
import com.zepben.evolve.cim.iec61968.customers.Tariff
import com.zepben.evolve.cim.iec61968.infiec61968.infassetinfo.CurrentTransformerInfo
import com.zepben.evolve.cim.iec61968.infiec61968.infassetinfo.PotentialTransformerInfo
import com.zepben.evolve.cim.iec61968.infiec61968.infassetinfo.RelayInfo
import com.zepben.evolve.cim.iec61968.metering.EndDevice
import com.zepben.evolve.cim.iec61968.metering.UsagePoint
import com.zepben.evolve.cim.iec61968.operations.OperationalRestriction
import com.zepben.evolve.cim.iec61970.base.auxiliaryequipment.AuxiliaryEquipment
import com.zepben.evolve.cim.iec61970.base.auxiliaryequipment.CurrentTransformer
import com.zepben.evolve.cim.iec61970.base.auxiliaryequipment.PotentialTransformer
import com.zepben.evolve.cim.iec61970.base.auxiliaryequipment.Sensor
import com.zepben.evolve.cim.iec61970.base.core.*
import com.zepben.evolve.cim.iec61970.base.diagramlayout.Diagram
import com.zepben.evolve.cim.iec61970.base.diagramlayout.DiagramObject
import com.zepben.evolve.cim.iec61970.base.meas.Control
import com.zepben.evolve.cim.iec61970.base.meas.Measurement
import com.zepben.evolve.cim.iec61970.base.protection.ProtectionRelayFunction
import com.zepben.evolve.cim.iec61970.base.protection.ProtectionRelayScheme
import com.zepben.evolve.cim.iec61970.base.protection.ProtectionRelaySystem
import com.zepben.evolve.cim.iec61970.base.scada.RemoteControl
import com.zepben.evolve.cim.iec61970.base.scada.RemoteSource
import com.zepben.evolve.cim.iec61970.base.wires.*
import com.zepben.evolve.cim.iec61970.base.wires.generation.production.PowerElectronicsUnit
import com.zepben.evolve.cim.iec61970.infiec61970.feeder.Circuit
import com.zepben.evolve.cim.iec61970.infiec61970.feeder.Loop
import com.zepben.evolve.cim.iec61970.infiec61970.feeder.LvFeeder

/**
 * These should be used to access [ReferenceResolver] instances for use with [BaseService.resolveOrDeferReference] and
 * [BaseService.getUnresolvedReferenceMrids].
 *
 * The naming pattern for the resolver matches the property name of the reference. E.g. to get the resolver for
 * base voltage for conducting equipment: `Resolvers.baseVoltage(conductingEquip)`.
 */
object Resolvers {

    @JvmStatic
    fun perLengthSequenceImpedance(acLineSegment: AcLineSegment): BoundReferenceResolver =
        BoundReferenceResolver(acLineSegment, AcLineSegmentToPerLengthSequenceImpedanceResolver, null)

    @JvmStatic
    fun organisationRoles(asset: Asset): BoundReferenceResolver =
        BoundReferenceResolver(asset, AssetToAssetOrganisationRoleResolver, null)

    @JvmStatic
    fun location(asset: Asset): BoundReferenceResolver =
        BoundReferenceResolver(asset, AssetToLocationResolver, null)

    @JvmStatic
    fun terminal(auxiliaryEquipment: AuxiliaryEquipment): BoundReferenceResolver =
        BoundReferenceResolver(auxiliaryEquipment, AuxiliaryEquipmentToTerminalResolver, null)

    @JvmStatic
    fun baseVoltage(conductingEquipment: ConductingEquipment): BoundReferenceResolver =
        BoundReferenceResolver(conductingEquipment, ConductingEquipmentToBaseVoltageResolver, null)

    @JvmStatic
    fun terminals(conductingEquipment: ConductingEquipment): BoundReferenceResolver =
        BoundReferenceResolver(conductingEquipment, ConductingEquipmentToTerminalsResolver, TerminalToConductingEquipmentResolver)

    @JvmStatic
    fun assetInfo(conductor: Conductor): BoundReferenceResolver =
        BoundReferenceResolver(conductor, ConductorToWireInfoResolver, null)

    @JvmStatic
    fun assetInfo(currentTransformer: CurrentTransformer): BoundReferenceResolver =
        BoundReferenceResolver(currentTransformer, CurrentTransformerToCurrentTransformerInfoResolver, null)

    @JvmStatic
    fun assetInfo(potentialTransformer: PotentialTransformer): BoundReferenceResolver =
        BoundReferenceResolver(potentialTransformer, PotentialTransformerToPotentialTransformerInfoResolver, null)

    @JvmStatic
    fun assetInfo(powerTransformer: PowerTransformer): BoundReferenceResolver =
        BoundReferenceResolver(powerTransformer, PowerTransformerToPowerTransformerInfoResolver, null)

    @JvmStatic
    fun assetInfo(shuntCompensator: ShuntCompensator): BoundReferenceResolver =
        BoundReferenceResolver(shuntCompensator, ShuntCompensatorToShuntCompensatorInfoResolver, null)

    @JvmStatic
    fun assetInfo(switch: Switch): BoundReferenceResolver =
        BoundReferenceResolver(switch, SwitchToSwitchInfoResolver, null)

    @JvmStatic
    fun streetlights(pole: Pole): BoundReferenceResolver =
        BoundReferenceResolver(pole, PoleToStreetlightResolver, StreetlightToPoleResolver)

    @JvmStatic
    fun pole(streetlight: Streetlight): BoundReferenceResolver =
        BoundReferenceResolver(streetlight, StreetlightToPoleResolver, PoleToStreetlightResolver)

    @JvmStatic
    fun terminals(connectivityNode: ConnectivityNode): BoundReferenceResolver =
        BoundReferenceResolver(connectivityNode, ConnectivityNodeToTerminalResolver, TerminalToConnectivityNodeResolver)

    @JvmStatic
    fun remoteControl(control: Control): BoundReferenceResolver =
        BoundReferenceResolver(control, ControlToRemoteControlResolver, RemoteControlToControlResolver)

    @JvmStatic
    fun agreements(customer: Customer): BoundReferenceResolver =
        BoundReferenceResolver(customer, CustomerToCustomerAgreementResolver, CustomerAgreementToCustomerResolver)

    @JvmStatic
    fun customer(customerAgreement: CustomerAgreement): BoundReferenceResolver =
        BoundReferenceResolver(customerAgreement, CustomerAgreementToCustomerResolver, CustomerToCustomerAgreementResolver)

    @JvmStatic
    fun pricingStructures(customerAgreement: CustomerAgreement): BoundReferenceResolver =
        BoundReferenceResolver(customerAgreement, CustomerAgreementToPricingStructureResolver, null)

    @JvmStatic
    fun diagramObjects(diagram: Diagram): BoundReferenceResolver =
        BoundReferenceResolver(diagram, DiagramToDiagramObjectResolver, DiagramObjectToDiagramResolver)

    @JvmStatic
    fun diagram(diagramObject: DiagramObject): BoundReferenceResolver =
        BoundReferenceResolver(diagramObject, DiagramObjectToDiagramResolver, DiagramToDiagramObjectResolver)

    @JvmStatic
    fun serviceLocation(endDevice: EndDevice): BoundReferenceResolver =
        BoundReferenceResolver(endDevice, EndDeviceToServiceLocationResolver, null)

    @JvmStatic
    fun usagePoints(endDevice: EndDevice): BoundReferenceResolver =
        BoundReferenceResolver(endDevice, EndDeviceToUsagePointResolver, UsagePointToEndDeviceResolver)

    @JvmStatic
    fun containers(equipment: Equipment): BoundReferenceResolver =
        BoundReferenceResolver(equipment, EquipmentToEquipmentContainerResolver, EquipmentContainerToEquipmentResolver)

    @JvmStatic
    fun currentContainers(equipment: Equipment): BoundReferenceResolver =
        BoundReferenceResolver(equipment, EquipmentToCurrentContainersResolver, EquipmentContainerToCurrentEquipmentResolver)

    @JvmStatic
    fun operationalRestrictions(equipment: Equipment): BoundReferenceResolver =
        BoundReferenceResolver(equipment, EquipmentToOperationalRestrictionResolver, OperationalRestrictionToEquipmentResolver)

    @JvmStatic
    fun usagePoints(equipment: Equipment): BoundReferenceResolver =
        BoundReferenceResolver(equipment, EquipmentToUsagePointResolver, UsagePointToEquipmentResolver)

    @JvmStatic
    fun equipment(equipmentContainer: EquipmentContainer): BoundReferenceResolver =
        BoundReferenceResolver(equipmentContainer, EquipmentContainerToEquipmentResolver, EquipmentToEquipmentContainerResolver)

    @JvmStatic
    fun phases(energyConsumer: EnergyConsumer): BoundReferenceResolver =
        BoundReferenceResolver(energyConsumer, EnergyConsumerToEnergyConsumerPhaseResolver, EnergyConsumerPhaseToEnergyConsumerResolver)

    @JvmStatic
    fun energyConsumer(energyConsumerPhase: EnergyConsumerPhase): BoundReferenceResolver =
        BoundReferenceResolver(energyConsumerPhase, EnergyConsumerPhaseToEnergyConsumerResolver, EnergyConsumerToEnergyConsumerPhaseResolver)

    @JvmStatic
    fun phases(energySource: EnergySource): BoundReferenceResolver =
        BoundReferenceResolver(energySource, EnergySourceToEnergySourcePhaseResolver, EnergySourcePhaseToEnergySourceResolver)

    @JvmStatic
    fun energySource(energySourcePhase: EnergySourcePhase): BoundReferenceResolver =
        BoundReferenceResolver(energySourcePhase, EnergySourcePhaseToEnergySourceResolver, EnergySourceToEnergySourcePhaseResolver)

    @JvmStatic
    fun normalEnergizingSubstation(feeder: Feeder): BoundReferenceResolver =
        BoundReferenceResolver(feeder, FeederToNormalEnergizingSubstationResolver, SubstationToNormalEnergizedFeedersResolver)

    @JvmStatic
    fun normalHeadTerminal(feeder: Feeder): BoundReferenceResolver =
        BoundReferenceResolver(feeder, FeederToNormalHeadTerminalResolver, null)

    @JvmStatic
    fun normalEnergizedLvFeeders(feeder: Feeder): BoundReferenceResolver =
        BoundReferenceResolver(feeder, FeederToNormalEnergizedLvFeedersResolver, LvFeederToNormalEnergizingFeedersResolver)

    @JvmStatic
    fun subGeographicalRegions(geographicalRegion: GeographicalRegion): BoundReferenceResolver =
        BoundReferenceResolver(geographicalRegion, GeographicalRegionToSubGeographicalRegionResolver, SubGeographicalRegionToGeographicalRegionResolver)

    @JvmStatic
    fun remoteSource(measurement: Measurement): BoundReferenceResolver =
        BoundReferenceResolver(measurement, MeasurementToRemoteSourceResolver, RemoteSourceToMeasurementResolver)

    @JvmStatic
    fun equipment(operationalRestriction: OperationalRestriction): BoundReferenceResolver =
        BoundReferenceResolver(operationalRestriction, OperationalRestrictionToEquipmentResolver, EquipmentToOperationalRestrictionResolver)

    @JvmStatic
    fun organisation(organisationRole: OrganisationRole): BoundReferenceResolver =
        BoundReferenceResolver(organisationRole, OrganisationRoleToOrganisationResolver, null)

    @JvmStatic
    fun location(powerSystemResource: PowerSystemResource): BoundReferenceResolver =
        BoundReferenceResolver(powerSystemResource, PowerSystemResourceToLocationResolver, null)

    @JvmStatic
    fun ends(powerTransformer: PowerTransformer): BoundReferenceResolver =
        BoundReferenceResolver(powerTransformer, PowerTransformerToPowerTransformerEndResolver, PowerTransformerEndToPowerTransformerResolver)

    @JvmStatic
    fun powerTransformer(powerTransformerEnd: PowerTransformerEnd): BoundReferenceResolver =
        BoundReferenceResolver(powerTransformerEnd, PowerTransformerEndToPowerTransformerResolver, PowerTransformerToPowerTransformerEndResolver)

    @JvmStatic
    fun tariffs(pricingStructure: PricingStructure): BoundReferenceResolver =
        BoundReferenceResolver(pricingStructure, PricingStructureToTariffResolver, null)

    @JvmStatic
    fun transformerEnd(ratioTapChanger: RatioTapChanger): BoundReferenceResolver =
        BoundReferenceResolver(ratioTapChanger, RatioTapChangerToTransformerEndResolver, TransformerEndToRatioTapChangerResolver)

    @JvmStatic
    fun control(remoteControl: RemoteControl): BoundReferenceResolver =
        BoundReferenceResolver(remoteControl, RemoteControlToControlResolver, ControlToRemoteControlResolver)

    @JvmStatic
    fun measurement(remoteSource: RemoteSource): BoundReferenceResolver =
        BoundReferenceResolver(remoteSource, RemoteSourceToMeasurementResolver, MeasurementToRemoteSourceResolver)

    @JvmStatic
    fun geographicalRegion(subGeographicalRegion: SubGeographicalRegion): BoundReferenceResolver =
        BoundReferenceResolver(subGeographicalRegion, SubGeographicalRegionToGeographicalRegionResolver, GeographicalRegionToSubGeographicalRegionResolver)

    @JvmStatic
    fun substations(subGeographicalRegion: SubGeographicalRegion): BoundReferenceResolver =
        BoundReferenceResolver(subGeographicalRegion, SubGeographicalRegionToSubstationResolver, SubstationToSubGeographicalRegionResolver)

    @JvmStatic
    fun normalEnergizedFeeders(substation: Substation): BoundReferenceResolver =
        BoundReferenceResolver(substation, SubstationToNormalEnergizedFeedersResolver, FeederToNormalEnergizingSubstationResolver)

    @JvmStatic
    fun subGeographicalRegion(substation: Substation): BoundReferenceResolver =
        BoundReferenceResolver(substation, SubstationToSubGeographicalRegionResolver, SubGeographicalRegionToSubstationResolver)

    @JvmStatic
    fun circuits(substation: Substation): BoundReferenceResolver =
        BoundReferenceResolver(substation, SubstationToCircuitResolver, CircuitToSubstationResolver)

    @JvmStatic
    fun loops(substation: Substation): BoundReferenceResolver =
        BoundReferenceResolver(substation, SubstationToLoopResolver, LoopToSubstationResolver)

    @JvmStatic
    fun normalEnergizedLoops(substation: Substation): BoundReferenceResolver =
        BoundReferenceResolver(substation, SubstationToEnergizedLoopResolver, LoopToEnergizingSubstationResolver)

    @JvmStatic
    fun conductingEquipment(terminal: Terminal): BoundReferenceResolver =
        BoundReferenceResolver(terminal, TerminalToConductingEquipmentResolver, ConductingEquipmentToTerminalsResolver)

    @JvmStatic
    fun connectivityNode(terminal: Terminal): BoundReferenceResolver =
        BoundReferenceResolver(terminal, TerminalToConnectivityNodeResolver, ConnectivityNodeToTerminalResolver)

    @JvmStatic
    fun baseVoltage(transformerEnd: TransformerEnd): BoundReferenceResolver =
        BoundReferenceResolver(transformerEnd, TransformerEndToBaseVoltageResolver, null)

    @JvmStatic
    fun ratioTapChanger(transformerEnd: TransformerEnd): BoundReferenceResolver =
        BoundReferenceResolver(transformerEnd, TransformerEndToRatioTapChangerResolver, RatioTapChangerToTransformerEndResolver)

    @JvmStatic
    fun terminal(transformerEnd: TransformerEnd): BoundReferenceResolver =
        BoundReferenceResolver(transformerEnd, TransformerEndToTerminalResolver, null)

    @JvmStatic
    fun endDevices(usagePoint: UsagePoint): BoundReferenceResolver =
        BoundReferenceResolver(usagePoint, UsagePointToEndDeviceResolver, EndDeviceToUsagePointResolver)

    @JvmStatic
    fun equipment(usagePoint: UsagePoint): BoundReferenceResolver =
        BoundReferenceResolver(usagePoint, UsagePointToEquipmentResolver, EquipmentToUsagePointResolver)

    @JvmStatic
    fun usagePointLocation(usagePoint: UsagePoint): BoundReferenceResolver =
        BoundReferenceResolver(usagePoint, UsagePointToLocationResolver, null)

    @JvmStatic
    fun loop(circuit: Circuit): BoundReferenceResolver =
        BoundReferenceResolver(circuit, CircuitToLoopResolver, LoopToCircuitResolver)

    @JvmStatic
    fun endTerminal(circuit: Circuit): BoundReferenceResolver =
        BoundReferenceResolver(circuit, CircuitToTerminalResolver, null)

    @JvmStatic
    fun endSubstation(circuit: Circuit): BoundReferenceResolver =
        BoundReferenceResolver(circuit, CircuitToSubstationResolver, SubstationToCircuitResolver)

    @JvmStatic
    fun circuits(loop: Loop): BoundReferenceResolver =
        BoundReferenceResolver(loop, LoopToCircuitResolver, CircuitToLoopResolver)

    @JvmStatic
    fun substations(loop: Loop): BoundReferenceResolver =
        BoundReferenceResolver(loop, LoopToSubstationResolver, SubstationToLoopResolver)

    @JvmStatic
    fun normalEnergizingSubstations(loop: Loop): BoundReferenceResolver =
        BoundReferenceResolver(loop, LoopToEnergizingSubstationResolver, SubstationToEnergizedLoopResolver)

    @JvmStatic
    fun normalHeadTerminal(lvFeeder: LvFeeder): BoundReferenceResolver =
        BoundReferenceResolver(lvFeeder, LvFeederToNormalHeadTerminalResolver, null)

    @JvmStatic
    fun normalEnergizingFeeders(lvFeeder: LvFeeder): BoundReferenceResolver =
        BoundReferenceResolver(lvFeeder, LvFeederToNormalEnergizingFeedersResolver, FeederToNormalEnergizedLvFeedersResolver)

    @JvmStatic
    fun powerElectronicsConnection(powerElectronicsUnit: PowerElectronicsUnit): BoundReferenceResolver =
        BoundReferenceResolver(
            powerElectronicsUnit,
            PowerElectronicsUnitToPowerElectronicsConnectionResolver,
            PowerElectronicsConnectionToPowerElectronicsUnitResolver
        )

    @JvmStatic
    fun powerElectronicsConnection(powerElectronicsConnectionPhase: PowerElectronicsConnectionPhase): BoundReferenceResolver =
        BoundReferenceResolver(
            powerElectronicsConnectionPhase,
            PowerElectronicsConnectionPhaseToPowerElectronicsConnectionResolver,
            PowerElectronicsConnectionToPowerElectronicsConnectionPhaseResolver
        )

    @JvmStatic
    fun powerElectronicsUnit(powerElectronicsConnection: PowerElectronicsConnection): BoundReferenceResolver =
        BoundReferenceResolver(
            powerElectronicsConnection,
            PowerElectronicsConnectionToPowerElectronicsUnitResolver,
            PowerElectronicsUnitToPowerElectronicsConnectionResolver
        )

    @JvmStatic
    fun powerElectronicsConnectionPhase(powerElectronicsConnection: PowerElectronicsConnection): BoundReferenceResolver =
        BoundReferenceResolver(
            powerElectronicsConnection,
            PowerElectronicsConnectionToPowerElectronicsConnectionPhaseResolver,
            PowerElectronicsConnectionPhaseToPowerElectronicsConnectionResolver
        )

    @JvmStatic
    fun starImpedance(transformerEnd: TransformerEnd): BoundReferenceResolver =
        BoundReferenceResolver(transformerEnd, TransformerEndToTransformerStarImpedanceResolver, null)

    @JvmStatic
    fun powerTransformerInfo(transformerTankInfo: TransformerTankInfo): BoundReferenceResolver =
        BoundReferenceResolver(transformerTankInfo, TransformerTankInfoToPowerTransformerInfoResolver, PowerTransformerInfoToTransformerTankInfoResolver)

    @JvmStatic
    fun transformerTankInfo(powerTransformerInfo: PowerTransformerInfo): BoundReferenceResolver =
        BoundReferenceResolver(powerTransformerInfo, PowerTransformerInfoToTransformerTankInfoResolver, TransformerTankInfoToPowerTransformerInfoResolver)

    @JvmStatic
    fun transformerTankInfo(transformerEndInfo: TransformerEndInfo): BoundReferenceResolver =
        BoundReferenceResolver(transformerEndInfo, TransformerEndInfoToTransformerTankInfoResolver, TransformerTankInfoToTransformerEndInfoResolver)

    @JvmStatic
    fun transformerEndInfo(transformerTankInfo: TransformerTankInfo): BoundReferenceResolver =
        BoundReferenceResolver(transformerTankInfo, TransformerTankInfoToTransformerEndInfoResolver, TransformerEndInfoToTransformerTankInfoResolver)

    @JvmStatic
    fun transformerStarImpedance(transformerEndInfo: TransformerEndInfo): BoundReferenceResolver =
        BoundReferenceResolver(transformerEndInfo, TransformerEndInfoToTransformerStarImpedanceResolver, TransformerStarImpedanceToTransformerEndInfoResolver)

    @JvmStatic
    fun transformerEndInfo(transformerStarImpedance: TransformerStarImpedance): BoundReferenceResolver =
        BoundReferenceResolver(
            transformerStarImpedance,
            TransformerStarImpedanceToTransformerEndInfoResolver,
            TransformerEndInfoToTransformerStarImpedanceResolver
        )

    @JvmStatic
    fun energisedEndNoLoadTests(transformerEndInfo: TransformerEndInfo): BoundReferenceResolver =
        BoundReferenceResolver(transformerEndInfo, TransformerEndInfoToNoLoadTestResolver, null)

    @JvmStatic
    fun energisedEndShortCircuitTests(transformerEndInfo: TransformerEndInfo): BoundReferenceResolver =
        BoundReferenceResolver(transformerEndInfo, TransformerEndInfoToEnergisedEndShortCircuitTestResolver, null)

    @JvmStatic
    fun groundedEndShortCircuitTests(transformerEndInfo: TransformerEndInfo): BoundReferenceResolver =
        BoundReferenceResolver(transformerEndInfo, TransformerEndInfoToGroundedEndShortCircuitTestResolver, null)

    @JvmStatic
    fun openEndOpenCircuitTests(transformerEndInfo: TransformerEndInfo): BoundReferenceResolver =
        BoundReferenceResolver(transformerEndInfo, TransformerEndInfoToOpenEndOpenCircuitTestResolver, null)

    @JvmStatic
    fun energisedEndOpenCircuitTests(transformerEndInfo: TransformerEndInfo): BoundReferenceResolver =
        BoundReferenceResolver(transformerEndInfo, TransformerEndInfoToEnergisedEndOpenCircuitTestResolver, null)

    @JvmStatic
    fun terminal(regulatingControl: RegulatingControl): BoundReferenceResolver =
        BoundReferenceResolver(regulatingControl, RegulatingControlToTerminalResolver, null)

    @JvmStatic
    fun regulatingCondEq(regulatingControl: RegulatingControl): BoundReferenceResolver =
        BoundReferenceResolver(
            regulatingControl,
            RegulatingControlToRegulatingCondEqResolver,
            RegulatingCondEqToRegulatingControlResolver
        )

    @JvmStatic
    fun regulatingControl(regulatingCondEq: RegulatingCondEq): BoundReferenceResolver =
        BoundReferenceResolver(
            regulatingCondEq,
            RegulatingCondEqToRegulatingControlResolver,
            RegulatingControlToRegulatingCondEqResolver
        )

    @JvmStatic
    fun tapChangerControl(tapChanger: TapChanger): BoundReferenceResolver =
        BoundReferenceResolver(tapChanger, TapChangerToTapChangerControlResolver, null)

    @JvmStatic
    fun protectedSwitches(protectionRelayFunction: ProtectionRelayFunction): BoundReferenceResolver =
        BoundReferenceResolver(
            protectionRelayFunction,
            ProtectionRelayFunctionToProtectedSwitchResolver,
            ProtectedSwitchToProtectionRelayFunctionResolver
        )

    @JvmStatic
    fun sensors(protectionRelayFunction: ProtectionRelayFunction): BoundReferenceResolver =
        BoundReferenceResolver(protectionRelayFunction, ProtectionRelayFunctionToSensorResolver, SensorToProtectionRelayFunctionResolver)

    @JvmStatic
    fun schemes(protectionRelayFunction: ProtectionRelayFunction): BoundReferenceResolver =
        BoundReferenceResolver(
            protectionRelayFunction,
            ProtectionRelayFunctionToProtectionRelaySchemeResolver,
            ProtectionRelaySchemeToProtectionRelayFunctionResolver
        )

    @JvmStatic
    fun system(protectionRelayScheme: ProtectionRelayScheme): BoundReferenceResolver =
        BoundReferenceResolver(
            protectionRelayScheme,
            ProtectionRelaySchemeToProtectionRelaySystemResolver,
            ProtectionRelaySystemToProtectionRelaySchemeResolver
        )

    @JvmStatic
    fun functions(protectionRelayScheme: ProtectionRelayScheme): BoundReferenceResolver =
        BoundReferenceResolver(
            protectionRelayScheme,
            ProtectionRelaySchemeToProtectionRelayFunctionResolver,
            ProtectionRelayFunctionToProtectionRelaySchemeResolver
        )

    @JvmStatic
    fun schemes(protectionRelaySystem: ProtectionRelaySystem): BoundReferenceResolver =
        BoundReferenceResolver(
            protectionRelaySystem,
            ProtectionRelaySystemToProtectionRelaySchemeResolver,
            ProtectionRelaySchemeToProtectionRelaySystemResolver
        )

    @JvmStatic
    fun relayFunctions(sensor: Sensor): BoundReferenceResolver =
        BoundReferenceResolver(
            sensor,
            SensorToProtectionRelayFunctionResolver,
            ProtectionRelayFunctionToSensorResolver
        )

    @JvmStatic
    fun relayFunctions(protectedSwitch: ProtectedSwitch): BoundReferenceResolver =
        BoundReferenceResolver(
            protectedSwitch,
            ProtectedSwitchToProtectionRelayFunctionResolver,
            ProtectionRelayFunctionToProtectedSwitchResolver
        )

    @JvmStatic
    fun function(fuse: Fuse): BoundReferenceResolver =
        BoundReferenceResolver(fuse, FuseToProtectionRelayFunctionResolver, null)

    @JvmStatic
    fun assetInfo(protectionRelayFunction: ProtectionRelayFunction): BoundReferenceResolver =
        BoundReferenceResolver(protectionRelayFunction, ProtectionRelayFunctionToRelayInfoResolver, null)

    @JvmStatic
    fun reactiveCapabilityCurve(synchronousMachine: SynchronousMachine): BoundReferenceResolver =
        BoundReferenceResolver(synchronousMachine, SynchronousMachineToReactiveCapabilityCurveResolver, null)
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy