diff --git a/charger/abl_decorators.go b/charger/abl_decorators.go index ce80354ab6..a3a3237eb6 100644 --- a/charger/abl_decorators.go +++ b/charger/abl_decorators.go @@ -8,7 +8,7 @@ import ( func decorateABLeMH(base *ABLeMH, meter func() (float64, error), phaseCurrents func() (float64, float64, float64, error)) api.Charger { switch { - case meter == nil && phaseCurrents == nil: + case meter == nil: return base case meter != nil && phaseCurrents == nil: @@ -22,17 +22,6 @@ func decorateABLeMH(base *ABLeMH, meter func() (float64, error), phaseCurrents f }, } - case meter == nil && phaseCurrents != nil: - return &struct { - *ABLeMH - api.PhaseCurrents - }{ - ABLeMH: base, - PhaseCurrents: &decorateABLeMHPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case meter != nil && phaseCurrents != nil: return &struct { *ABLeMH diff --git a/charger/alfen_decorators.go b/charger/alfen_decorators.go index 6fedbfe71b..27fb48a7f6 100644 --- a/charger/alfen_decorators.go +++ b/charger/alfen_decorators.go @@ -8,7 +8,7 @@ import ( func decorateAlfen(base *Alfen, phaseSwitcher func(int) error, phaseGetter func() (int, error)) api.Charger { switch { - case phaseGetter == nil && phaseSwitcher == nil: + case phaseSwitcher == nil: return base case phaseGetter == nil && phaseSwitcher != nil: @@ -22,17 +22,6 @@ func decorateAlfen(base *Alfen, phaseSwitcher func(int) error, phaseGetter func( }, } - case phaseGetter != nil && phaseSwitcher == nil: - return &struct { - *Alfen - api.PhaseGetter - }{ - Alfen: base, - PhaseGetter: &decorateAlfenPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - } - case phaseGetter != nil && phaseSwitcher != nil: return &struct { *Alfen diff --git a/charger/bender_decorators.go b/charger/bender_decorators.go index 86097d84fb..06f8d47361 100644 --- a/charger/bender_decorators.go +++ b/charger/bender_decorators.go @@ -8,7 +8,7 @@ import ( func decorateBenderCC(base *BenderCC, meter func() (float64, error), phaseCurrents func() (float64, float64, float64, error), phaseVoltages func() (float64, float64, float64, error), meterEnergy func() (float64, error), battery func() (float64, error), identifier func() (string, error)) api.Charger { switch { - case battery == nil && identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: + case battery == nil && identifier == nil && meter == nil: return base case battery == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: @@ -22,17 +22,6 @@ func decorateBenderCC(base *BenderCC, meter func() (float64, error), phaseCurren }, } - case battery == nil && identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *BenderCC - api.PhaseCurrents - }{ - BenderCC: base, - PhaseCurrents: &decorateBenderCCPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case battery == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: return &struct { *BenderCC @@ -48,17 +37,6 @@ func decorateBenderCC(base *BenderCC, meter func() (float64, error), phaseCurren }, } - case battery == nil && identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *BenderCC - api.PhaseVoltages - }{ - BenderCC: base, - PhaseVoltages: &decorateBenderCCPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case battery == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { *BenderCC @@ -74,21 +52,6 @@ func decorateBenderCC(base *BenderCC, meter func() (float64, error), phaseCurren }, } - case battery == nil && identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *BenderCC - api.PhaseCurrents - api.PhaseVoltages - }{ - BenderCC: base, - PhaseCurrents: &decorateBenderCCPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateBenderCCPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case battery == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: return &struct { *BenderCC @@ -108,17 +71,6 @@ func decorateBenderCC(base *BenderCC, meter func() (float64, error), phaseCurren }, } - case battery == nil && identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *BenderCC - api.MeterEnergy - }{ - BenderCC: base, - MeterEnergy: &decorateBenderCCMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - case battery == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { *BenderCC @@ -134,21 +86,6 @@ func decorateBenderCC(base *BenderCC, meter func() (float64, error), phaseCurren }, } - case battery == nil && identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *BenderCC - api.MeterEnergy - api.PhaseCurrents - }{ - BenderCC: base, - MeterEnergy: &decorateBenderCCMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateBenderCCPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case battery == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: return &struct { *BenderCC @@ -168,21 +105,6 @@ func decorateBenderCC(base *BenderCC, meter func() (float64, error), phaseCurren }, } - case battery == nil && identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *BenderCC - api.MeterEnergy - api.PhaseVoltages - }{ - BenderCC: base, - MeterEnergy: &decorateBenderCCMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateBenderCCPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case battery == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { *BenderCC @@ -202,25 +124,6 @@ func decorateBenderCC(base *BenderCC, meter func() (float64, error), phaseCurren }, } - case battery == nil && identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *BenderCC - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - BenderCC: base, - MeterEnergy: &decorateBenderCCMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateBenderCCPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateBenderCCPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case battery == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: return &struct { *BenderCC @@ -244,7 +147,7 @@ func decorateBenderCC(base *BenderCC, meter func() (float64, error), phaseCurren }, } - case battery != nil && identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: + case battery != nil && identifier == nil && meter == nil: return &struct { *BenderCC api.Battery @@ -270,21 +173,6 @@ func decorateBenderCC(base *BenderCC, meter func() (float64, error), phaseCurren }, } - case battery != nil && identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *BenderCC - api.Battery - api.PhaseCurrents - }{ - BenderCC: base, - Battery: &decorateBenderCCBatteryImpl{ - battery: battery, - }, - PhaseCurrents: &decorateBenderCCPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case battery != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: return &struct { *BenderCC @@ -304,21 +192,6 @@ func decorateBenderCC(base *BenderCC, meter func() (float64, error), phaseCurren }, } - case battery != nil && identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *BenderCC - api.Battery - api.PhaseVoltages - }{ - BenderCC: base, - Battery: &decorateBenderCCBatteryImpl{ - battery: battery, - }, - PhaseVoltages: &decorateBenderCCPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case battery != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { *BenderCC @@ -338,25 +211,6 @@ func decorateBenderCC(base *BenderCC, meter func() (float64, error), phaseCurren }, } - case battery != nil && identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *BenderCC - api.Battery - api.PhaseCurrents - api.PhaseVoltages - }{ - BenderCC: base, - Battery: &decorateBenderCCBatteryImpl{ - battery: battery, - }, - PhaseCurrents: &decorateBenderCCPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateBenderCCPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case battery != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: return &struct { *BenderCC @@ -380,21 +234,6 @@ func decorateBenderCC(base *BenderCC, meter func() (float64, error), phaseCurren }, } - case battery != nil && identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *BenderCC - api.Battery - api.MeterEnergy - }{ - BenderCC: base, - Battery: &decorateBenderCCBatteryImpl{ - battery: battery, - }, - MeterEnergy: &decorateBenderCCMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - case battery != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { *BenderCC @@ -414,25 +253,6 @@ func decorateBenderCC(base *BenderCC, meter func() (float64, error), phaseCurren }, } - case battery != nil && identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *BenderCC - api.Battery - api.MeterEnergy - api.PhaseCurrents - }{ - BenderCC: base, - Battery: &decorateBenderCCBatteryImpl{ - battery: battery, - }, - MeterEnergy: &decorateBenderCCMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateBenderCCPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case battery != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: return &struct { *BenderCC @@ -456,25 +276,6 @@ func decorateBenderCC(base *BenderCC, meter func() (float64, error), phaseCurren }, } - case battery != nil && identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *BenderCC - api.Battery - api.MeterEnergy - api.PhaseVoltages - }{ - BenderCC: base, - Battery: &decorateBenderCCBatteryImpl{ - battery: battery, - }, - MeterEnergy: &decorateBenderCCMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateBenderCCPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case battery != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { *BenderCC @@ -498,29 +299,6 @@ func decorateBenderCC(base *BenderCC, meter func() (float64, error), phaseCurren }, } - case battery != nil && identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *BenderCC - api.Battery - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - BenderCC: base, - Battery: &decorateBenderCCBatteryImpl{ - battery: battery, - }, - MeterEnergy: &decorateBenderCCMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateBenderCCPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateBenderCCPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case battery != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: return &struct { *BenderCC @@ -548,7 +326,7 @@ func decorateBenderCC(base *BenderCC, meter func() (float64, error), phaseCurren }, } - case battery == nil && identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: + case battery == nil && identifier != nil && meter == nil: return &struct { *BenderCC api.Identifier @@ -574,21 +352,6 @@ func decorateBenderCC(base *BenderCC, meter func() (float64, error), phaseCurren }, } - case battery == nil && identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *BenderCC - api.Identifier - api.PhaseCurrents - }{ - BenderCC: base, - Identifier: &decorateBenderCCIdentifierImpl{ - identifier: identifier, - }, - PhaseCurrents: &decorateBenderCCPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case battery == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: return &struct { *BenderCC @@ -608,21 +371,6 @@ func decorateBenderCC(base *BenderCC, meter func() (float64, error), phaseCurren }, } - case battery == nil && identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *BenderCC - api.Identifier - api.PhaseVoltages - }{ - BenderCC: base, - Identifier: &decorateBenderCCIdentifierImpl{ - identifier: identifier, - }, - PhaseVoltages: &decorateBenderCCPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case battery == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { *BenderCC @@ -642,25 +390,6 @@ func decorateBenderCC(base *BenderCC, meter func() (float64, error), phaseCurren }, } - case battery == nil && identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *BenderCC - api.Identifier - api.PhaseCurrents - api.PhaseVoltages - }{ - BenderCC: base, - Identifier: &decorateBenderCCIdentifierImpl{ - identifier: identifier, - }, - PhaseCurrents: &decorateBenderCCPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateBenderCCPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case battery == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: return &struct { *BenderCC @@ -684,21 +413,6 @@ func decorateBenderCC(base *BenderCC, meter func() (float64, error), phaseCurren }, } - case battery == nil && identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *BenderCC - api.Identifier - api.MeterEnergy - }{ - BenderCC: base, - Identifier: &decorateBenderCCIdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateBenderCCMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - case battery == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { *BenderCC @@ -718,25 +432,6 @@ func decorateBenderCC(base *BenderCC, meter func() (float64, error), phaseCurren }, } - case battery == nil && identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *BenderCC - api.Identifier - api.MeterEnergy - api.PhaseCurrents - }{ - BenderCC: base, - Identifier: &decorateBenderCCIdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateBenderCCMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateBenderCCPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case battery == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: return &struct { *BenderCC @@ -760,25 +455,6 @@ func decorateBenderCC(base *BenderCC, meter func() (float64, error), phaseCurren }, } - case battery == nil && identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *BenderCC - api.Identifier - api.MeterEnergy - api.PhaseVoltages - }{ - BenderCC: base, - Identifier: &decorateBenderCCIdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateBenderCCMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateBenderCCPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case battery == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { *BenderCC @@ -802,29 +478,6 @@ func decorateBenderCC(base *BenderCC, meter func() (float64, error), phaseCurren }, } - case battery == nil && identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *BenderCC - api.Identifier - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - BenderCC: base, - Identifier: &decorateBenderCCIdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateBenderCCMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateBenderCCPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateBenderCCPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case battery == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: return &struct { *BenderCC @@ -852,7 +505,7 @@ func decorateBenderCC(base *BenderCC, meter func() (float64, error), phaseCurren }, } - case battery != nil && identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: + case battery != nil && identifier != nil && meter == nil: return &struct { *BenderCC api.Battery @@ -886,25 +539,6 @@ func decorateBenderCC(base *BenderCC, meter func() (float64, error), phaseCurren }, } - case battery != nil && identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *BenderCC - api.Battery - api.Identifier - api.PhaseCurrents - }{ - BenderCC: base, - Battery: &decorateBenderCCBatteryImpl{ - battery: battery, - }, - Identifier: &decorateBenderCCIdentifierImpl{ - identifier: identifier, - }, - PhaseCurrents: &decorateBenderCCPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case battery != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: return &struct { *BenderCC @@ -928,25 +562,6 @@ func decorateBenderCC(base *BenderCC, meter func() (float64, error), phaseCurren }, } - case battery != nil && identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *BenderCC - api.Battery - api.Identifier - api.PhaseVoltages - }{ - BenderCC: base, - Battery: &decorateBenderCCBatteryImpl{ - battery: battery, - }, - Identifier: &decorateBenderCCIdentifierImpl{ - identifier: identifier, - }, - PhaseVoltages: &decorateBenderCCPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case battery != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { *BenderCC @@ -970,29 +585,6 @@ func decorateBenderCC(base *BenderCC, meter func() (float64, error), phaseCurren }, } - case battery != nil && identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *BenderCC - api.Battery - api.Identifier - api.PhaseCurrents - api.PhaseVoltages - }{ - BenderCC: base, - Battery: &decorateBenderCCBatteryImpl{ - battery: battery, - }, - Identifier: &decorateBenderCCIdentifierImpl{ - identifier: identifier, - }, - PhaseCurrents: &decorateBenderCCPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateBenderCCPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case battery != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: return &struct { *BenderCC @@ -1020,25 +612,6 @@ func decorateBenderCC(base *BenderCC, meter func() (float64, error), phaseCurren }, } - case battery != nil && identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *BenderCC - api.Battery - api.Identifier - api.MeterEnergy - }{ - BenderCC: base, - Battery: &decorateBenderCCBatteryImpl{ - battery: battery, - }, - Identifier: &decorateBenderCCIdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateBenderCCMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - case battery != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { *BenderCC @@ -1062,29 +635,6 @@ func decorateBenderCC(base *BenderCC, meter func() (float64, error), phaseCurren }, } - case battery != nil && identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *BenderCC - api.Battery - api.Identifier - api.MeterEnergy - api.PhaseCurrents - }{ - BenderCC: base, - Battery: &decorateBenderCCBatteryImpl{ - battery: battery, - }, - Identifier: &decorateBenderCCIdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateBenderCCMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateBenderCCPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case battery != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: return &struct { *BenderCC @@ -1112,29 +662,6 @@ func decorateBenderCC(base *BenderCC, meter func() (float64, error), phaseCurren }, } - case battery != nil && identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *BenderCC - api.Battery - api.Identifier - api.MeterEnergy - api.PhaseVoltages - }{ - BenderCC: base, - Battery: &decorateBenderCCBatteryImpl{ - battery: battery, - }, - Identifier: &decorateBenderCCIdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateBenderCCMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateBenderCCPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case battery != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { *BenderCC @@ -1162,33 +689,6 @@ func decorateBenderCC(base *BenderCC, meter func() (float64, error), phaseCurren }, } - case battery != nil && identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *BenderCC - api.Battery - api.Identifier - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - BenderCC: base, - Battery: &decorateBenderCCBatteryImpl{ - battery: battery, - }, - Identifier: &decorateBenderCCIdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateBenderCCMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateBenderCCPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateBenderCCPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case battery != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: return &struct { *BenderCC diff --git a/charger/cfos_decorators.go b/charger/cfos_decorators.go index 54ab8acdd0..a836066753 100644 --- a/charger/cfos_decorators.go +++ b/charger/cfos_decorators.go @@ -8,7 +8,7 @@ import ( func decorateCfos(base *CfosPowerBrain, meter func() (float64, error), meterEnergy func() (float64, error), phaseCurrents func() (float64, float64, float64, error), phaseSwitcher func(int) error) api.Charger { switch { - case meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil: + case meter == nil && phaseSwitcher == nil: return base case meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil: @@ -22,17 +22,6 @@ func decorateCfos(base *CfosPowerBrain, meter func() (float64, error), meterEner }, } - case meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil: - return &struct { - *CfosPowerBrain - api.MeterEnergy - }{ - CfosPowerBrain: base, - MeterEnergy: &decorateCfosMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - case meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil: return &struct { *CfosPowerBrain @@ -48,17 +37,6 @@ func decorateCfos(base *CfosPowerBrain, meter func() (float64, error), meterEner }, } - case meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil: - return &struct { - *CfosPowerBrain - api.PhaseCurrents - }{ - CfosPowerBrain: base, - PhaseCurrents: &decorateCfosPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil: return &struct { *CfosPowerBrain @@ -74,21 +52,6 @@ func decorateCfos(base *CfosPowerBrain, meter func() (float64, error), meterEner }, } - case meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil: - return &struct { - *CfosPowerBrain - api.MeterEnergy - api.PhaseCurrents - }{ - CfosPowerBrain: base, - MeterEnergy: &decorateCfosMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateCfosPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil: return &struct { *CfosPowerBrain @@ -108,7 +71,7 @@ func decorateCfos(base *CfosPowerBrain, meter func() (float64, error), meterEner }, } - case meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher != nil: + case meter == nil && phaseSwitcher != nil: return &struct { *CfosPowerBrain api.PhaseSwitcher @@ -134,21 +97,6 @@ func decorateCfos(base *CfosPowerBrain, meter func() (float64, error), meterEner }, } - case meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher != nil: - return &struct { - *CfosPowerBrain - api.MeterEnergy - api.PhaseSwitcher - }{ - CfosPowerBrain: base, - MeterEnergy: &decorateCfosMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseSwitcher: &decorateCfosPhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - } - case meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher != nil: return &struct { *CfosPowerBrain @@ -168,21 +116,6 @@ func decorateCfos(base *CfosPowerBrain, meter func() (float64, error), meterEner }, } - case meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher != nil: - return &struct { - *CfosPowerBrain - api.PhaseCurrents - api.PhaseSwitcher - }{ - CfosPowerBrain: base, - PhaseCurrents: &decorateCfosPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseSwitcher: &decorateCfosPhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - } - case meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher != nil: return &struct { *CfosPowerBrain @@ -202,25 +135,6 @@ func decorateCfos(base *CfosPowerBrain, meter func() (float64, error), meterEner }, } - case meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher != nil: - return &struct { - *CfosPowerBrain - api.MeterEnergy - api.PhaseCurrents - api.PhaseSwitcher - }{ - CfosPowerBrain: base, - MeterEnergy: &decorateCfosMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateCfosPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseSwitcher: &decorateCfosPhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - } - case meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher != nil: return &struct { *CfosPowerBrain diff --git a/charger/charger.go b/charger/charger.go index 070630921e..0b7b8570df 100644 --- a/charger/charger.go +++ b/charger/charger.go @@ -23,7 +23,7 @@ func init() { registry.Add(api.Custom, NewConfigurableFromConfig) } -//go:generate go run ../cmd/tools/decorate.go -f decorateCustom -b *Charger -r api.Charger -t "api.ChargerEx,MaxCurrentMillis,func(float64) error" -t "api.Identifier,Identify,func() (string, error)" -t "api.PhaseSwitcher,Phases1p3p,func(int) error" -t "api.Resurrector,WakeUp,func() error" -t "api.Battery,Soc,func() (float64, error)" -t "api.Meter,CurrentPower,func() (float64, error)" -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" +//go:generate go run ../cmd/tools/decorate.go -f decorateCustom -b *Charger -r api.Charger -t "api.ChargerEx,MaxCurrentMillis,func(float64) error" -t "api.Identifier,Identify,func() (string, error)" -t "api.PhaseSwitcher,Phases1p3p,func(int) error" -t "api.Resurrector,WakeUp,func() error" -t "api.Battery,Soc,func() (float64, error)" -t "api.Meter,CurrentPower,func() (float64, error)" -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)" -t "api.PhaseVoltages,Voltages,func() (float64, float64, float64, error)" // NewConfigurableFromConfig creates a new configurable charger func NewConfigurableFromConfig(other map[string]interface{}) (api.Charger, error) { @@ -40,8 +40,7 @@ func NewConfigurableFromConfig(other map[string]interface{}) (api.Charger, error Power *provider.Config Energy *provider.Config - // phase values, currently not supported (https://github.com/evcc-io/evcc/pull/14546) - // Currents, Voltages, Powers []provider.Config + Currents, Voltages []provider.Config } if err := util.DecodeOther(other, &cc); err != nil { @@ -137,7 +136,12 @@ func NewConfigurableFromConfig(other map[string]interface{}) (api.Charger, error return nil, err } - return decorateCustom(c, maxcurrentmillis, identify, phases1p3p, wakeup, soc, powerG, energyG), nil + currentsG, voltagesG, _, err := meter.BuildPhaseMeasurements(cc.Currents, cc.Voltages, nil) + if err != nil { + return nil, err + } + + return decorateCustom(c, maxcurrentmillis, identify, phases1p3p, wakeup, soc, powerG, energyG, currentsG, voltagesG), nil } // NewConfigurable creates a new charger diff --git a/charger/charger_decorators.go b/charger/charger_decorators.go index a2ecb36444..aa9c7c97c3 100644 --- a/charger/charger_decorators.go +++ b/charger/charger_decorators.go @@ -6,12 +6,12 @@ import ( "github.com/evcc-io/evcc/api" ) -func decorateCustom(base *Charger, chargerEx func(float64) error, identifier func() (string, error), phaseSwitcher func(int) error, resurrector func() error, battery func() (float64, error), meter func() (float64, error), meterEnergy func() (float64, error)) api.Charger { +func decorateCustom(base *Charger, chargerEx func(float64) error, identifier func() (string, error), phaseSwitcher func(int) error, resurrector func() error, battery func() (float64, error), meter func() (float64, error), meterEnergy func() (float64, error), phaseCurrents func() (float64, float64, float64, error), phaseVoltages func() (float64, float64, float64, error)) api.Charger { switch { - case battery == nil && chargerEx == nil && identifier == nil && meter == nil && meterEnergy == nil && phaseSwitcher == nil && resurrector == nil: + case battery == nil && chargerEx == nil && identifier == nil && meter == nil && phaseSwitcher == nil && resurrector == nil: return base - case battery == nil && chargerEx != nil && identifier == nil && meter == nil && meterEnergy == nil && phaseSwitcher == nil && resurrector == nil: + case battery == nil && chargerEx != nil && identifier == nil && meter == nil && phaseSwitcher == nil && resurrector == nil: return &struct { *Charger api.ChargerEx @@ -22,7 +22,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx == nil && identifier != nil && meter == nil && meterEnergy == nil && phaseSwitcher == nil && resurrector == nil: + case battery == nil && chargerEx == nil && identifier != nil && meter == nil && phaseSwitcher == nil && resurrector == nil: return &struct { *Charger api.Identifier @@ -33,7 +33,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx != nil && identifier != nil && meter == nil && meterEnergy == nil && phaseSwitcher == nil && resurrector == nil: + case battery == nil && chargerEx != nil && identifier != nil && meter == nil && phaseSwitcher == nil && resurrector == nil: return &struct { *Charger api.ChargerEx @@ -48,7 +48,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx == nil && identifier == nil && meter == nil && meterEnergy == nil && phaseSwitcher != nil && resurrector == nil: + case battery == nil && chargerEx == nil && identifier == nil && meter == nil && phaseSwitcher != nil && resurrector == nil: return &struct { *Charger api.PhaseSwitcher @@ -59,7 +59,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx != nil && identifier == nil && meter == nil && meterEnergy == nil && phaseSwitcher != nil && resurrector == nil: + case battery == nil && chargerEx != nil && identifier == nil && meter == nil && phaseSwitcher != nil && resurrector == nil: return &struct { *Charger api.ChargerEx @@ -74,7 +74,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx == nil && identifier != nil && meter == nil && meterEnergy == nil && phaseSwitcher != nil && resurrector == nil: + case battery == nil && chargerEx == nil && identifier != nil && meter == nil && phaseSwitcher != nil && resurrector == nil: return &struct { *Charger api.Identifier @@ -89,7 +89,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx != nil && identifier != nil && meter == nil && meterEnergy == nil && phaseSwitcher != nil && resurrector == nil: + case battery == nil && chargerEx != nil && identifier != nil && meter == nil && phaseSwitcher != nil && resurrector == nil: return &struct { *Charger api.ChargerEx @@ -108,7 +108,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx == nil && identifier == nil && meter == nil && meterEnergy == nil && phaseSwitcher == nil && resurrector != nil: + case battery == nil && chargerEx == nil && identifier == nil && meter == nil && phaseSwitcher == nil && resurrector != nil: return &struct { *Charger api.Resurrector @@ -119,7 +119,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx != nil && identifier == nil && meter == nil && meterEnergy == nil && phaseSwitcher == nil && resurrector != nil: + case battery == nil && chargerEx != nil && identifier == nil && meter == nil && phaseSwitcher == nil && resurrector != nil: return &struct { *Charger api.ChargerEx @@ -134,7 +134,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx == nil && identifier != nil && meter == nil && meterEnergy == nil && phaseSwitcher == nil && resurrector != nil: + case battery == nil && chargerEx == nil && identifier != nil && meter == nil && phaseSwitcher == nil && resurrector != nil: return &struct { *Charger api.Identifier @@ -149,7 +149,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx != nil && identifier != nil && meter == nil && meterEnergy == nil && phaseSwitcher == nil && resurrector != nil: + case battery == nil && chargerEx != nil && identifier != nil && meter == nil && phaseSwitcher == nil && resurrector != nil: return &struct { *Charger api.ChargerEx @@ -168,7 +168,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx == nil && identifier == nil && meter == nil && meterEnergy == nil && phaseSwitcher != nil && resurrector != nil: + case battery == nil && chargerEx == nil && identifier == nil && meter == nil && phaseSwitcher != nil && resurrector != nil: return &struct { *Charger api.PhaseSwitcher @@ -183,7 +183,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx != nil && identifier == nil && meter == nil && meterEnergy == nil && phaseSwitcher != nil && resurrector != nil: + case battery == nil && chargerEx != nil && identifier == nil && meter == nil && phaseSwitcher != nil && resurrector != nil: return &struct { *Charger api.ChargerEx @@ -202,7 +202,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx == nil && identifier != nil && meter == nil && meterEnergy == nil && phaseSwitcher != nil && resurrector != nil: + case battery == nil && chargerEx == nil && identifier != nil && meter == nil && phaseSwitcher != nil && resurrector != nil: return &struct { *Charger api.Identifier @@ -221,7 +221,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx != nil && identifier != nil && meter == nil && meterEnergy == nil && phaseSwitcher != nil && resurrector != nil: + case battery == nil && chargerEx != nil && identifier != nil && meter == nil && phaseSwitcher != nil && resurrector != nil: return &struct { *Charger api.ChargerEx @@ -244,7 +244,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx == nil && identifier == nil && meter == nil && meterEnergy == nil && phaseSwitcher == nil && resurrector == nil: + case battery != nil && chargerEx == nil && identifier == nil && meter == nil && phaseSwitcher == nil && resurrector == nil: return &struct { *Charger api.Battery @@ -255,7 +255,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx != nil && identifier == nil && meter == nil && meterEnergy == nil && phaseSwitcher == nil && resurrector == nil: + case battery != nil && chargerEx != nil && identifier == nil && meter == nil && phaseSwitcher == nil && resurrector == nil: return &struct { *Charger api.Battery @@ -270,7 +270,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx == nil && identifier != nil && meter == nil && meterEnergy == nil && phaseSwitcher == nil && resurrector == nil: + case battery != nil && chargerEx == nil && identifier != nil && meter == nil && phaseSwitcher == nil && resurrector == nil: return &struct { *Charger api.Battery @@ -285,7 +285,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx != nil && identifier != nil && meter == nil && meterEnergy == nil && phaseSwitcher == nil && resurrector == nil: + case battery != nil && chargerEx != nil && identifier != nil && meter == nil && phaseSwitcher == nil && resurrector == nil: return &struct { *Charger api.Battery @@ -304,7 +304,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx == nil && identifier == nil && meter == nil && meterEnergy == nil && phaseSwitcher != nil && resurrector == nil: + case battery != nil && chargerEx == nil && identifier == nil && meter == nil && phaseSwitcher != nil && resurrector == nil: return &struct { *Charger api.Battery @@ -319,7 +319,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx != nil && identifier == nil && meter == nil && meterEnergy == nil && phaseSwitcher != nil && resurrector == nil: + case battery != nil && chargerEx != nil && identifier == nil && meter == nil && phaseSwitcher != nil && resurrector == nil: return &struct { *Charger api.Battery @@ -338,7 +338,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx == nil && identifier != nil && meter == nil && meterEnergy == nil && phaseSwitcher != nil && resurrector == nil: + case battery != nil && chargerEx == nil && identifier != nil && meter == nil && phaseSwitcher != nil && resurrector == nil: return &struct { *Charger api.Battery @@ -357,7 +357,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx != nil && identifier != nil && meter == nil && meterEnergy == nil && phaseSwitcher != nil && resurrector == nil: + case battery != nil && chargerEx != nil && identifier != nil && meter == nil && phaseSwitcher != nil && resurrector == nil: return &struct { *Charger api.Battery @@ -380,7 +380,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx == nil && identifier == nil && meter == nil && meterEnergy == nil && phaseSwitcher == nil && resurrector != nil: + case battery != nil && chargerEx == nil && identifier == nil && meter == nil && phaseSwitcher == nil && resurrector != nil: return &struct { *Charger api.Battery @@ -395,7 +395,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx != nil && identifier == nil && meter == nil && meterEnergy == nil && phaseSwitcher == nil && resurrector != nil: + case battery != nil && chargerEx != nil && identifier == nil && meter == nil && phaseSwitcher == nil && resurrector != nil: return &struct { *Charger api.Battery @@ -414,7 +414,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx == nil && identifier != nil && meter == nil && meterEnergy == nil && phaseSwitcher == nil && resurrector != nil: + case battery != nil && chargerEx == nil && identifier != nil && meter == nil && phaseSwitcher == nil && resurrector != nil: return &struct { *Charger api.Battery @@ -433,7 +433,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx != nil && identifier != nil && meter == nil && meterEnergy == nil && phaseSwitcher == nil && resurrector != nil: + case battery != nil && chargerEx != nil && identifier != nil && meter == nil && phaseSwitcher == nil && resurrector != nil: return &struct { *Charger api.Battery @@ -456,7 +456,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx == nil && identifier == nil && meter == nil && meterEnergy == nil && phaseSwitcher != nil && resurrector != nil: + case battery != nil && chargerEx == nil && identifier == nil && meter == nil && phaseSwitcher != nil && resurrector != nil: return &struct { *Charger api.Battery @@ -475,7 +475,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx != nil && identifier == nil && meter == nil && meterEnergy == nil && phaseSwitcher != nil && resurrector != nil: + case battery != nil && chargerEx != nil && identifier == nil && meter == nil && phaseSwitcher != nil && resurrector != nil: return &struct { *Charger api.Battery @@ -498,7 +498,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx == nil && identifier != nil && meter == nil && meterEnergy == nil && phaseSwitcher != nil && resurrector != nil: + case battery != nil && chargerEx == nil && identifier != nil && meter == nil && phaseSwitcher != nil && resurrector != nil: return &struct { *Charger api.Battery @@ -521,7 +521,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx != nil && identifier != nil && meter == nil && meterEnergy == nil && phaseSwitcher != nil && resurrector != nil: + case battery != nil && chargerEx != nil && identifier != nil && meter == nil && phaseSwitcher != nil && resurrector != nil: return &struct { *Charger api.Battery @@ -548,7 +548,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseSwitcher == nil && resurrector == nil: + case battery == nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.Meter @@ -559,7 +559,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseSwitcher == nil && resurrector == nil: + case battery == nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.ChargerEx @@ -574,7 +574,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseSwitcher == nil && resurrector == nil: + case battery == nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.Identifier @@ -589,7 +589,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseSwitcher == nil && resurrector == nil: + case battery == nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.ChargerEx @@ -608,7 +608,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseSwitcher != nil && resurrector == nil: + case battery == nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.Meter @@ -623,7 +623,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseSwitcher != nil && resurrector == nil: + case battery == nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.ChargerEx @@ -642,7 +642,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseSwitcher != nil && resurrector == nil: + case battery == nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.Identifier @@ -661,7 +661,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseSwitcher != nil && resurrector == nil: + case battery == nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.ChargerEx @@ -684,7 +684,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseSwitcher == nil && resurrector != nil: + case battery == nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.Meter @@ -699,7 +699,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseSwitcher == nil && resurrector != nil: + case battery == nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.ChargerEx @@ -718,7 +718,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseSwitcher == nil && resurrector != nil: + case battery == nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.Identifier @@ -737,7 +737,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseSwitcher == nil && resurrector != nil: + case battery == nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.ChargerEx @@ -760,7 +760,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseSwitcher != nil && resurrector != nil: + case battery == nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.Meter @@ -779,7 +779,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseSwitcher != nil && resurrector != nil: + case battery == nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.ChargerEx @@ -802,7 +802,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseSwitcher != nil && resurrector != nil: + case battery == nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.Identifier @@ -825,7 +825,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseSwitcher != nil && resurrector != nil: + case battery == nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.ChargerEx @@ -852,7 +852,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseSwitcher == nil && resurrector == nil: + case battery != nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.Battery @@ -867,7 +867,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseSwitcher == nil && resurrector == nil: + case battery != nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.Battery @@ -886,7 +886,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseSwitcher == nil && resurrector == nil: + case battery != nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.Battery @@ -905,7 +905,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseSwitcher == nil && resurrector == nil: + case battery != nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.Battery @@ -928,7 +928,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseSwitcher != nil && resurrector == nil: + case battery != nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.Battery @@ -947,7 +947,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseSwitcher != nil && resurrector == nil: + case battery != nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.Battery @@ -970,7 +970,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseSwitcher != nil && resurrector == nil: + case battery != nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.Battery @@ -993,7 +993,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseSwitcher != nil && resurrector == nil: + case battery != nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.Battery @@ -1020,7 +1020,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseSwitcher == nil && resurrector != nil: + case battery != nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.Battery @@ -1039,7 +1039,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseSwitcher == nil && resurrector != nil: + case battery != nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.Battery @@ -1062,7 +1062,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseSwitcher == nil && resurrector != nil: + case battery != nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.Battery @@ -1085,7 +1085,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseSwitcher == nil && resurrector != nil: + case battery != nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.Battery @@ -1112,7 +1112,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseSwitcher != nil && resurrector != nil: + case battery != nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.Battery @@ -1135,7 +1135,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseSwitcher != nil && resurrector != nil: + case battery != nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.Battery @@ -1162,7 +1162,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseSwitcher != nil && resurrector != nil: + case battery != nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.Battery @@ -1189,7 +1189,7 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseSwitcher != nil && resurrector != nil: + case battery != nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.Battery @@ -1220,52 +1220,65 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx == nil && identifier == nil && meter == nil && meterEnergy != nil && phaseSwitcher == nil && resurrector == nil: + case battery == nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger + api.Meter api.MeterEnergy }{ Charger: base, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, MeterEnergy: &decorateCustomMeterEnergyImpl{ meterEnergy: meterEnergy, }, } - case battery == nil && chargerEx != nil && identifier == nil && meter == nil && meterEnergy != nil && phaseSwitcher == nil && resurrector == nil: + case battery == nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.ChargerEx + api.Meter api.MeterEnergy }{ Charger: base, ChargerEx: &decorateCustomChargerExImpl{ chargerEx: chargerEx, }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, MeterEnergy: &decorateCustomMeterEnergyImpl{ meterEnergy: meterEnergy, }, } - case battery == nil && chargerEx == nil && identifier != nil && meter == nil && meterEnergy != nil && phaseSwitcher == nil && resurrector == nil: + case battery == nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.Identifier + api.Meter api.MeterEnergy }{ Charger: base, Identifier: &decorateCustomIdentifierImpl{ identifier: identifier, }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, MeterEnergy: &decorateCustomMeterEnergyImpl{ meterEnergy: meterEnergy, }, } - case battery == nil && chargerEx != nil && identifier != nil && meter == nil && meterEnergy != nil && phaseSwitcher == nil && resurrector == nil: + case battery == nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.ChargerEx api.Identifier + api.Meter api.MeterEnergy }{ Charger: base, @@ -1275,18 +1288,25 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Identifier: &decorateCustomIdentifierImpl{ identifier: identifier, }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, MeterEnergy: &decorateCustomMeterEnergyImpl{ meterEnergy: meterEnergy, }, } - case battery == nil && chargerEx == nil && identifier == nil && meter == nil && meterEnergy != nil && phaseSwitcher != nil && resurrector == nil: + case battery == nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger + api.Meter api.MeterEnergy api.PhaseSwitcher }{ Charger: base, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, MeterEnergy: &decorateCustomMeterEnergyImpl{ meterEnergy: meterEnergy, }, @@ -1295,10 +1315,11 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx != nil && identifier == nil && meter == nil && meterEnergy != nil && phaseSwitcher != nil && resurrector == nil: + case battery == nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.ChargerEx + api.Meter api.MeterEnergy api.PhaseSwitcher }{ @@ -1306,6 +1327,9 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun ChargerEx: &decorateCustomChargerExImpl{ chargerEx: chargerEx, }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, MeterEnergy: &decorateCustomMeterEnergyImpl{ meterEnergy: meterEnergy, }, @@ -1314,10 +1338,11 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx == nil && identifier != nil && meter == nil && meterEnergy != nil && phaseSwitcher != nil && resurrector == nil: + case battery == nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.Identifier + api.Meter api.MeterEnergy api.PhaseSwitcher }{ @@ -1325,6 +1350,9 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Identifier: &decorateCustomIdentifierImpl{ identifier: identifier, }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, MeterEnergy: &decorateCustomMeterEnergyImpl{ meterEnergy: meterEnergy, }, @@ -1333,11 +1361,12 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx != nil && identifier != nil && meter == nil && meterEnergy != nil && phaseSwitcher != nil && resurrector == nil: + case battery == nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.ChargerEx api.Identifier + api.Meter api.MeterEnergy api.PhaseSwitcher }{ @@ -1348,6 +1377,9 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Identifier: &decorateCustomIdentifierImpl{ identifier: identifier, }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, MeterEnergy: &decorateCustomMeterEnergyImpl{ meterEnergy: meterEnergy, }, @@ -1356,13 +1388,17 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx == nil && identifier == nil && meter == nil && meterEnergy != nil && phaseSwitcher == nil && resurrector != nil: + case battery == nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger + api.Meter api.MeterEnergy api.Resurrector }{ Charger: base, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, MeterEnergy: &decorateCustomMeterEnergyImpl{ meterEnergy: meterEnergy, }, @@ -1371,10 +1407,11 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx != nil && identifier == nil && meter == nil && meterEnergy != nil && phaseSwitcher == nil && resurrector != nil: + case battery == nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.ChargerEx + api.Meter api.MeterEnergy api.Resurrector }{ @@ -1382,6 +1419,9 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun ChargerEx: &decorateCustomChargerExImpl{ chargerEx: chargerEx, }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, MeterEnergy: &decorateCustomMeterEnergyImpl{ meterEnergy: meterEnergy, }, @@ -1390,10 +1430,11 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx == nil && identifier != nil && meter == nil && meterEnergy != nil && phaseSwitcher == nil && resurrector != nil: + case battery == nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.Identifier + api.Meter api.MeterEnergy api.Resurrector }{ @@ -1401,6 +1442,9 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Identifier: &decorateCustomIdentifierImpl{ identifier: identifier, }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, MeterEnergy: &decorateCustomMeterEnergyImpl{ meterEnergy: meterEnergy, }, @@ -1409,11 +1453,12 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx != nil && identifier != nil && meter == nil && meterEnergy != nil && phaseSwitcher == nil && resurrector != nil: + case battery == nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.ChargerEx api.Identifier + api.Meter api.MeterEnergy api.Resurrector }{ @@ -1424,6 +1469,9 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Identifier: &decorateCustomIdentifierImpl{ identifier: identifier, }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, MeterEnergy: &decorateCustomMeterEnergyImpl{ meterEnergy: meterEnergy, }, @@ -1432,14 +1480,18 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx == nil && identifier == nil && meter == nil && meterEnergy != nil && phaseSwitcher != nil && resurrector != nil: + case battery == nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger + api.Meter api.MeterEnergy api.PhaseSwitcher api.Resurrector }{ Charger: base, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, MeterEnergy: &decorateCustomMeterEnergyImpl{ meterEnergy: meterEnergy, }, @@ -1451,10 +1503,11 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx != nil && identifier == nil && meter == nil && meterEnergy != nil && phaseSwitcher != nil && resurrector != nil: + case battery == nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.ChargerEx + api.Meter api.MeterEnergy api.PhaseSwitcher api.Resurrector @@ -1463,6 +1516,9 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun ChargerEx: &decorateCustomChargerExImpl{ chargerEx: chargerEx, }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, MeterEnergy: &decorateCustomMeterEnergyImpl{ meterEnergy: meterEnergy, }, @@ -1474,10 +1530,11 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx == nil && identifier != nil && meter == nil && meterEnergy != nil && phaseSwitcher != nil && resurrector != nil: + case battery == nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.Identifier + api.Meter api.MeterEnergy api.PhaseSwitcher api.Resurrector @@ -1486,6 +1543,9 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Identifier: &decorateCustomIdentifierImpl{ identifier: identifier, }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, MeterEnergy: &decorateCustomMeterEnergyImpl{ meterEnergy: meterEnergy, }, @@ -1497,11 +1557,12 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx != nil && identifier != nil && meter == nil && meterEnergy != nil && phaseSwitcher != nil && resurrector != nil: + case battery == nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.ChargerEx api.Identifier + api.Meter api.MeterEnergy api.PhaseSwitcher api.Resurrector @@ -1513,6 +1574,9 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Identifier: &decorateCustomIdentifierImpl{ identifier: identifier, }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, MeterEnergy: &decorateCustomMeterEnergyImpl{ meterEnergy: meterEnergy, }, @@ -1524,26 +1588,31 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx == nil && identifier == nil && meter == nil && meterEnergy != nil && phaseSwitcher == nil && resurrector == nil: + case battery != nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.Battery + api.Meter api.MeterEnergy }{ Charger: base, Battery: &decorateCustomBatteryImpl{ battery: battery, }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, MeterEnergy: &decorateCustomMeterEnergyImpl{ meterEnergy: meterEnergy, }, } - case battery != nil && chargerEx != nil && identifier == nil && meter == nil && meterEnergy != nil && phaseSwitcher == nil && resurrector == nil: + case battery != nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.Battery api.ChargerEx + api.Meter api.MeterEnergy }{ Charger: base, @@ -1553,16 +1622,20 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun ChargerEx: &decorateCustomChargerExImpl{ chargerEx: chargerEx, }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, MeterEnergy: &decorateCustomMeterEnergyImpl{ meterEnergy: meterEnergy, }, } - case battery != nil && chargerEx == nil && identifier != nil && meter == nil && meterEnergy != nil && phaseSwitcher == nil && resurrector == nil: + case battery != nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.Battery api.Identifier + api.Meter api.MeterEnergy }{ Charger: base, @@ -1572,17 +1645,21 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Identifier: &decorateCustomIdentifierImpl{ identifier: identifier, }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, MeterEnergy: &decorateCustomMeterEnergyImpl{ meterEnergy: meterEnergy, }, } - case battery != nil && chargerEx != nil && identifier != nil && meter == nil && meterEnergy != nil && phaseSwitcher == nil && resurrector == nil: + case battery != nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.Battery api.ChargerEx api.Identifier + api.Meter api.MeterEnergy }{ Charger: base, @@ -1595,15 +1672,19 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Identifier: &decorateCustomIdentifierImpl{ identifier: identifier, }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, MeterEnergy: &decorateCustomMeterEnergyImpl{ meterEnergy: meterEnergy, }, } - case battery != nil && chargerEx == nil && identifier == nil && meter == nil && meterEnergy != nil && phaseSwitcher != nil && resurrector == nil: + case battery != nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.Battery + api.Meter api.MeterEnergy api.PhaseSwitcher }{ @@ -1611,6 +1692,9 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Battery: &decorateCustomBatteryImpl{ battery: battery, }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, MeterEnergy: &decorateCustomMeterEnergyImpl{ meterEnergy: meterEnergy, }, @@ -1619,11 +1703,12 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx != nil && identifier == nil && meter == nil && meterEnergy != nil && phaseSwitcher != nil && resurrector == nil: + case battery != nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.Battery api.ChargerEx + api.Meter api.MeterEnergy api.PhaseSwitcher }{ @@ -1634,6 +1719,9 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun ChargerEx: &decorateCustomChargerExImpl{ chargerEx: chargerEx, }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, MeterEnergy: &decorateCustomMeterEnergyImpl{ meterEnergy: meterEnergy, }, @@ -1642,11 +1730,12 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx == nil && identifier != nil && meter == nil && meterEnergy != nil && phaseSwitcher != nil && resurrector == nil: + case battery != nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.Battery api.Identifier + api.Meter api.MeterEnergy api.PhaseSwitcher }{ @@ -1657,6 +1746,9 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Identifier: &decorateCustomIdentifierImpl{ identifier: identifier, }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, MeterEnergy: &decorateCustomMeterEnergyImpl{ meterEnergy: meterEnergy, }, @@ -1665,12 +1757,13 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx != nil && identifier != nil && meter == nil && meterEnergy != nil && phaseSwitcher != nil && resurrector == nil: + case battery != nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.Battery api.ChargerEx api.Identifier + api.Meter api.MeterEnergy api.PhaseSwitcher }{ @@ -1684,6 +1777,9 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Identifier: &decorateCustomIdentifierImpl{ identifier: identifier, }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, MeterEnergy: &decorateCustomMeterEnergyImpl{ meterEnergy: meterEnergy, }, @@ -1692,10 +1788,11 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx == nil && identifier == nil && meter == nil && meterEnergy != nil && phaseSwitcher == nil && resurrector != nil: + case battery != nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.Battery + api.Meter api.MeterEnergy api.Resurrector }{ @@ -1703,6 +1800,9 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Battery: &decorateCustomBatteryImpl{ battery: battery, }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, MeterEnergy: &decorateCustomMeterEnergyImpl{ meterEnergy: meterEnergy, }, @@ -1711,11 +1811,12 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx != nil && identifier == nil && meter == nil && meterEnergy != nil && phaseSwitcher == nil && resurrector != nil: + case battery != nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.Battery api.ChargerEx + api.Meter api.MeterEnergy api.Resurrector }{ @@ -1726,6 +1827,9 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun ChargerEx: &decorateCustomChargerExImpl{ chargerEx: chargerEx, }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, MeterEnergy: &decorateCustomMeterEnergyImpl{ meterEnergy: meterEnergy, }, @@ -1734,11 +1838,12 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx == nil && identifier != nil && meter == nil && meterEnergy != nil && phaseSwitcher == nil && resurrector != nil: + case battery != nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.Battery api.Identifier + api.Meter api.MeterEnergy api.Resurrector }{ @@ -1749,6 +1854,9 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Identifier: &decorateCustomIdentifierImpl{ identifier: identifier, }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, MeterEnergy: &decorateCustomMeterEnergyImpl{ meterEnergy: meterEnergy, }, @@ -1757,12 +1865,13 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx != nil && identifier != nil && meter == nil && meterEnergy != nil && phaseSwitcher == nil && resurrector != nil: + case battery != nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.Battery api.ChargerEx api.Identifier + api.Meter api.MeterEnergy api.Resurrector }{ @@ -1776,6 +1885,9 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Identifier: &decorateCustomIdentifierImpl{ identifier: identifier, }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, MeterEnergy: &decorateCustomMeterEnergyImpl{ meterEnergy: meterEnergy, }, @@ -1784,10 +1896,11 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx == nil && identifier == nil && meter == nil && meterEnergy != nil && phaseSwitcher != nil && resurrector != nil: + case battery != nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.Battery + api.Meter api.MeterEnergy api.PhaseSwitcher api.Resurrector @@ -1796,6 +1909,9 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Battery: &decorateCustomBatteryImpl{ battery: battery, }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, MeterEnergy: &decorateCustomMeterEnergyImpl{ meterEnergy: meterEnergy, }, @@ -1807,11 +1923,12 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx != nil && identifier == nil && meter == nil && meterEnergy != nil && phaseSwitcher != nil && resurrector != nil: + case battery != nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.Battery api.ChargerEx + api.Meter api.MeterEnergy api.PhaseSwitcher api.Resurrector @@ -1823,6 +1940,9 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun ChargerEx: &decorateCustomChargerExImpl{ chargerEx: chargerEx, }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, MeterEnergy: &decorateCustomMeterEnergyImpl{ meterEnergy: meterEnergy, }, @@ -1834,11 +1954,12 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx == nil && identifier != nil && meter == nil && meterEnergy != nil && phaseSwitcher != nil && resurrector != nil: + case battery != nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.Battery api.Identifier + api.Meter api.MeterEnergy api.PhaseSwitcher api.Resurrector @@ -1850,6 +1971,9 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Identifier: &decorateCustomIdentifierImpl{ identifier: identifier, }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, MeterEnergy: &decorateCustomMeterEnergyImpl{ meterEnergy: meterEnergy, }, @@ -1861,12 +1985,13 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx != nil && identifier != nil && meter == nil && meterEnergy != nil && phaseSwitcher != nil && resurrector != nil: + case battery != nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.Battery api.ChargerEx api.Identifier + api.Meter api.MeterEnergy api.PhaseSwitcher api.Resurrector @@ -1881,6 +2006,9 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Identifier: &decorateCustomIdentifierImpl{ identifier: identifier, }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, MeterEnergy: &decorateCustomMeterEnergyImpl{ meterEnergy: meterEnergy, }, @@ -1892,27 +2020,27 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseSwitcher == nil && resurrector == nil: + case battery == nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.Meter - api.MeterEnergy + api.PhaseCurrents }{ Charger: base, Meter: &decorateCustomMeterImpl{ meter: meter, }, - MeterEnergy: &decorateCustomMeterEnergyImpl{ - meterEnergy: meterEnergy, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, }, } - case battery == nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseSwitcher == nil && resurrector == nil: + case battery == nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.ChargerEx api.Meter - api.MeterEnergy + api.PhaseCurrents }{ Charger: base, ChargerEx: &decorateCustomChargerExImpl{ @@ -1921,17 +2049,17 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Meter: &decorateCustomMeterImpl{ meter: meter, }, - MeterEnergy: &decorateCustomMeterEnergyImpl{ - meterEnergy: meterEnergy, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, }, } - case battery == nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseSwitcher == nil && resurrector == nil: + case battery == nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.Identifier api.Meter - api.MeterEnergy + api.PhaseCurrents }{ Charger: base, Identifier: &decorateCustomIdentifierImpl{ @@ -1940,18 +2068,18 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Meter: &decorateCustomMeterImpl{ meter: meter, }, - MeterEnergy: &decorateCustomMeterEnergyImpl{ - meterEnergy: meterEnergy, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, }, } - case battery == nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseSwitcher == nil && resurrector == nil: + case battery == nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.ChargerEx api.Identifier api.Meter - api.MeterEnergy + api.PhaseCurrents }{ Charger: base, ChargerEx: &decorateCustomChargerExImpl{ @@ -1963,36 +2091,36 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Meter: &decorateCustomMeterImpl{ meter: meter, }, - MeterEnergy: &decorateCustomMeterEnergyImpl{ - meterEnergy: meterEnergy, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, }, } - case battery == nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseSwitcher != nil && resurrector == nil: + case battery == nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.Meter - api.MeterEnergy + api.PhaseCurrents api.PhaseSwitcher }{ Charger: base, Meter: &decorateCustomMeterImpl{ meter: meter, }, - MeterEnergy: &decorateCustomMeterEnergyImpl{ - meterEnergy: meterEnergy, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, }, PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ phaseSwitcher: phaseSwitcher, }, } - case battery == nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseSwitcher != nil && resurrector == nil: + case battery == nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.ChargerEx api.Meter - api.MeterEnergy + api.PhaseCurrents api.PhaseSwitcher }{ Charger: base, @@ -2002,20 +2130,20 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Meter: &decorateCustomMeterImpl{ meter: meter, }, - MeterEnergy: &decorateCustomMeterEnergyImpl{ - meterEnergy: meterEnergy, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, }, PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ phaseSwitcher: phaseSwitcher, }, } - case battery == nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseSwitcher != nil && resurrector == nil: + case battery == nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.Identifier api.Meter - api.MeterEnergy + api.PhaseCurrents api.PhaseSwitcher }{ Charger: base, @@ -2025,21 +2153,21 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Meter: &decorateCustomMeterImpl{ meter: meter, }, - MeterEnergy: &decorateCustomMeterEnergyImpl{ - meterEnergy: meterEnergy, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, }, PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ phaseSwitcher: phaseSwitcher, }, } - case battery == nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseSwitcher != nil && resurrector == nil: + case battery == nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.ChargerEx api.Identifier api.Meter - api.MeterEnergy + api.PhaseCurrents api.PhaseSwitcher }{ Charger: base, @@ -2052,39 +2180,39 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Meter: &decorateCustomMeterImpl{ meter: meter, }, - MeterEnergy: &decorateCustomMeterEnergyImpl{ - meterEnergy: meterEnergy, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, }, PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ phaseSwitcher: phaseSwitcher, }, } - case battery == nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseSwitcher == nil && resurrector != nil: + case battery == nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.Meter - api.MeterEnergy + api.PhaseCurrents api.Resurrector }{ Charger: base, Meter: &decorateCustomMeterImpl{ meter: meter, }, - MeterEnergy: &decorateCustomMeterEnergyImpl{ - meterEnergy: meterEnergy, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, }, Resurrector: &decorateCustomResurrectorImpl{ resurrector: resurrector, }, } - case battery == nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseSwitcher == nil && resurrector != nil: + case battery == nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.ChargerEx api.Meter - api.MeterEnergy + api.PhaseCurrents api.Resurrector }{ Charger: base, @@ -2094,20 +2222,20 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Meter: &decorateCustomMeterImpl{ meter: meter, }, - MeterEnergy: &decorateCustomMeterEnergyImpl{ - meterEnergy: meterEnergy, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, }, Resurrector: &decorateCustomResurrectorImpl{ resurrector: resurrector, }, } - case battery == nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseSwitcher == nil && resurrector != nil: + case battery == nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.Identifier api.Meter - api.MeterEnergy + api.PhaseCurrents api.Resurrector }{ Charger: base, @@ -2117,21 +2245,21 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Meter: &decorateCustomMeterImpl{ meter: meter, }, - MeterEnergy: &decorateCustomMeterEnergyImpl{ - meterEnergy: meterEnergy, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, }, Resurrector: &decorateCustomResurrectorImpl{ resurrector: resurrector, }, } - case battery == nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseSwitcher == nil && resurrector != nil: + case battery == nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.ChargerEx api.Identifier api.Meter - api.MeterEnergy + api.PhaseCurrents api.Resurrector }{ Charger: base, @@ -2144,19 +2272,19 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Meter: &decorateCustomMeterImpl{ meter: meter, }, - MeterEnergy: &decorateCustomMeterEnergyImpl{ - meterEnergy: meterEnergy, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, }, Resurrector: &decorateCustomResurrectorImpl{ resurrector: resurrector, }, } - case battery == nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseSwitcher != nil && resurrector != nil: + case battery == nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.Meter - api.MeterEnergy + api.PhaseCurrents api.PhaseSwitcher api.Resurrector }{ @@ -2164,8 +2292,8 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Meter: &decorateCustomMeterImpl{ meter: meter, }, - MeterEnergy: &decorateCustomMeterEnergyImpl{ - meterEnergy: meterEnergy, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, }, PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ phaseSwitcher: phaseSwitcher, @@ -2175,12 +2303,12 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseSwitcher != nil && resurrector != nil: + case battery == nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.ChargerEx api.Meter - api.MeterEnergy + api.PhaseCurrents api.PhaseSwitcher api.Resurrector }{ @@ -2191,8 +2319,8 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Meter: &decorateCustomMeterImpl{ meter: meter, }, - MeterEnergy: &decorateCustomMeterEnergyImpl{ - meterEnergy: meterEnergy, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, }, PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ phaseSwitcher: phaseSwitcher, @@ -2202,12 +2330,12 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseSwitcher != nil && resurrector != nil: + case battery == nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.Identifier api.Meter - api.MeterEnergy + api.PhaseCurrents api.PhaseSwitcher api.Resurrector }{ @@ -2218,8 +2346,8 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Meter: &decorateCustomMeterImpl{ meter: meter, }, - MeterEnergy: &decorateCustomMeterEnergyImpl{ - meterEnergy: meterEnergy, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, }, PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ phaseSwitcher: phaseSwitcher, @@ -2229,13 +2357,13 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery == nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseSwitcher != nil && resurrector != nil: + case battery == nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.ChargerEx api.Identifier api.Meter - api.MeterEnergy + api.PhaseCurrents api.PhaseSwitcher api.Resurrector }{ @@ -2249,8 +2377,8 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Meter: &decorateCustomMeterImpl{ meter: meter, }, - MeterEnergy: &decorateCustomMeterEnergyImpl{ - meterEnergy: meterEnergy, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, }, PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ phaseSwitcher: phaseSwitcher, @@ -2260,12 +2388,12 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseSwitcher == nil && resurrector == nil: + case battery != nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.Battery api.Meter - api.MeterEnergy + api.PhaseCurrents }{ Charger: base, Battery: &decorateCustomBatteryImpl{ @@ -2274,18 +2402,18 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Meter: &decorateCustomMeterImpl{ meter: meter, }, - MeterEnergy: &decorateCustomMeterEnergyImpl{ - meterEnergy: meterEnergy, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, }, } - case battery != nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseSwitcher == nil && resurrector == nil: + case battery != nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.Battery api.ChargerEx api.Meter - api.MeterEnergy + api.PhaseCurrents }{ Charger: base, Battery: &decorateCustomBatteryImpl{ @@ -2297,18 +2425,18 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Meter: &decorateCustomMeterImpl{ meter: meter, }, - MeterEnergy: &decorateCustomMeterEnergyImpl{ - meterEnergy: meterEnergy, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, }, } - case battery != nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseSwitcher == nil && resurrector == nil: + case battery != nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.Battery api.Identifier api.Meter - api.MeterEnergy + api.PhaseCurrents }{ Charger: base, Battery: &decorateCustomBatteryImpl{ @@ -2320,19 +2448,19 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Meter: &decorateCustomMeterImpl{ meter: meter, }, - MeterEnergy: &decorateCustomMeterEnergyImpl{ - meterEnergy: meterEnergy, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, }, } - case battery != nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseSwitcher == nil && resurrector == nil: + case battery != nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.Battery api.ChargerEx api.Identifier api.Meter - api.MeterEnergy + api.PhaseCurrents }{ Charger: base, Battery: &decorateCustomBatteryImpl{ @@ -2347,17 +2475,17 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Meter: &decorateCustomMeterImpl{ meter: meter, }, - MeterEnergy: &decorateCustomMeterEnergyImpl{ - meterEnergy: meterEnergy, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, }, } - case battery != nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseSwitcher != nil && resurrector == nil: + case battery != nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.Battery api.Meter - api.MeterEnergy + api.PhaseCurrents api.PhaseSwitcher }{ Charger: base, @@ -2367,21 +2495,21 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Meter: &decorateCustomMeterImpl{ meter: meter, }, - MeterEnergy: &decorateCustomMeterEnergyImpl{ - meterEnergy: meterEnergy, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, }, PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ phaseSwitcher: phaseSwitcher, }, } - case battery != nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseSwitcher != nil && resurrector == nil: + case battery != nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.Battery api.ChargerEx api.Meter - api.MeterEnergy + api.PhaseCurrents api.PhaseSwitcher }{ Charger: base, @@ -2394,21 +2522,21 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Meter: &decorateCustomMeterImpl{ meter: meter, }, - MeterEnergy: &decorateCustomMeterEnergyImpl{ - meterEnergy: meterEnergy, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, }, PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ phaseSwitcher: phaseSwitcher, }, } - case battery != nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseSwitcher != nil && resurrector == nil: + case battery != nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.Battery api.Identifier api.Meter - api.MeterEnergy + api.PhaseCurrents api.PhaseSwitcher }{ Charger: base, @@ -2421,22 +2549,22 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Meter: &decorateCustomMeterImpl{ meter: meter, }, - MeterEnergy: &decorateCustomMeterEnergyImpl{ - meterEnergy: meterEnergy, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, }, PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ phaseSwitcher: phaseSwitcher, }, } - case battery != nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseSwitcher != nil && resurrector == nil: + case battery != nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector == nil: return &struct { *Charger api.Battery api.ChargerEx api.Identifier api.Meter - api.MeterEnergy + api.PhaseCurrents api.PhaseSwitcher }{ Charger: base, @@ -2452,20 +2580,20 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Meter: &decorateCustomMeterImpl{ meter: meter, }, - MeterEnergy: &decorateCustomMeterEnergyImpl{ - meterEnergy: meterEnergy, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, }, PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ phaseSwitcher: phaseSwitcher, }, } - case battery != nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseSwitcher == nil && resurrector != nil: + case battery != nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.Battery api.Meter - api.MeterEnergy + api.PhaseCurrents api.Resurrector }{ Charger: base, @@ -2475,21 +2603,21 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Meter: &decorateCustomMeterImpl{ meter: meter, }, - MeterEnergy: &decorateCustomMeterEnergyImpl{ - meterEnergy: meterEnergy, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, }, Resurrector: &decorateCustomResurrectorImpl{ resurrector: resurrector, }, } - case battery != nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseSwitcher == nil && resurrector != nil: + case battery != nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.Battery api.ChargerEx api.Meter - api.MeterEnergy + api.PhaseCurrents api.Resurrector }{ Charger: base, @@ -2502,21 +2630,21 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Meter: &decorateCustomMeterImpl{ meter: meter, }, - MeterEnergy: &decorateCustomMeterEnergyImpl{ - meterEnergy: meterEnergy, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, }, Resurrector: &decorateCustomResurrectorImpl{ resurrector: resurrector, }, } - case battery != nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseSwitcher == nil && resurrector != nil: + case battery != nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.Battery api.Identifier api.Meter - api.MeterEnergy + api.PhaseCurrents api.Resurrector }{ Charger: base, @@ -2529,22 +2657,22 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Meter: &decorateCustomMeterImpl{ meter: meter, }, - MeterEnergy: &decorateCustomMeterEnergyImpl{ - meterEnergy: meterEnergy, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, }, Resurrector: &decorateCustomResurrectorImpl{ resurrector: resurrector, }, } - case battery != nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseSwitcher == nil && resurrector != nil: + case battery != nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.Battery api.ChargerEx api.Identifier api.Meter - api.MeterEnergy + api.PhaseCurrents api.Resurrector }{ Charger: base, @@ -2560,20 +2688,20 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Meter: &decorateCustomMeterImpl{ meter: meter, }, - MeterEnergy: &decorateCustomMeterEnergyImpl{ - meterEnergy: meterEnergy, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, }, Resurrector: &decorateCustomResurrectorImpl{ resurrector: resurrector, }, } - case battery != nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseSwitcher != nil && resurrector != nil: + case battery != nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.Battery api.Meter - api.MeterEnergy + api.PhaseCurrents api.PhaseSwitcher api.Resurrector }{ @@ -2584,8 +2712,8 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Meter: &decorateCustomMeterImpl{ meter: meter, }, - MeterEnergy: &decorateCustomMeterEnergyImpl{ - meterEnergy: meterEnergy, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, }, PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ phaseSwitcher: phaseSwitcher, @@ -2595,13 +2723,13 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseSwitcher != nil && resurrector != nil: + case battery != nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.Battery api.ChargerEx api.Meter - api.MeterEnergy + api.PhaseCurrents api.PhaseSwitcher api.Resurrector }{ @@ -2615,8 +2743,8 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Meter: &decorateCustomMeterImpl{ meter: meter, }, - MeterEnergy: &decorateCustomMeterEnergyImpl{ - meterEnergy: meterEnergy, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, }, PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ phaseSwitcher: phaseSwitcher, @@ -2626,13 +2754,13 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseSwitcher != nil && resurrector != nil: + case battery != nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.Battery api.Identifier api.Meter - api.MeterEnergy + api.PhaseCurrents api.PhaseSwitcher api.Resurrector }{ @@ -2646,8 +2774,8 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Meter: &decorateCustomMeterImpl{ meter: meter, }, - MeterEnergy: &decorateCustomMeterEnergyImpl{ - meterEnergy: meterEnergy, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, }, PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ phaseSwitcher: phaseSwitcher, @@ -2657,14 +2785,14 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun }, } - case battery != nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseSwitcher != nil && resurrector != nil: + case battery != nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector != nil: return &struct { *Charger api.Battery api.ChargerEx api.Identifier api.Meter - api.MeterEnergy + api.PhaseCurrents api.PhaseSwitcher api.Resurrector }{ @@ -2681,8 +2809,8 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun Meter: &decorateCustomMeterImpl{ meter: meter, }, - MeterEnergy: &decorateCustomMeterEnergyImpl{ - meterEnergy: meterEnergy, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, }, PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ phaseSwitcher: phaseSwitcher, @@ -2691,26 +2819,4666 @@ func decorateCustom(base *Charger, chargerEx func(float64) error, identifier fun resurrector: resurrector, }, } - } - - return nil -} - -type decorateCustomBatteryImpl struct { - battery func() (float64, error) -} -func (impl *decorateCustomBatteryImpl) Soc() (float64, error) { - return impl.battery() -} - -type decorateCustomChargerExImpl struct { - chargerEx func(float64) error -} + case battery == nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector == nil: + return &struct { + *Charger + api.Meter + api.MeterEnergy + api.PhaseCurrents + }{ + Charger: base, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + } -func (impl *decorateCustomChargerExImpl) MaxCurrentMillis(p0 float64) error { - return impl.chargerEx(p0) -} + case battery == nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector == nil: + return &struct { + *Charger + api.ChargerEx + api.Meter + api.MeterEnergy + api.PhaseCurrents + }{ + Charger: base, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + } + + case battery == nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector == nil: + return &struct { + *Charger + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseCurrents + }{ + Charger: base, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + } + + case battery == nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector == nil: + return &struct { + *Charger + api.ChargerEx + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseCurrents + }{ + Charger: base, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + } + + case battery == nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector == nil: + return &struct { + *Charger + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseSwitcher + }{ + Charger: base, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + } + + case battery == nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector == nil: + return &struct { + *Charger + api.ChargerEx + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseSwitcher + }{ + Charger: base, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + } + + case battery == nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector == nil: + return &struct { + *Charger + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseSwitcher + }{ + Charger: base, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + } + + case battery == nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector == nil: + return &struct { + *Charger + api.ChargerEx + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseSwitcher + }{ + Charger: base, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + } + + case battery == nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector != nil: + return &struct { + *Charger + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.Resurrector + }{ + Charger: base, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery == nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector != nil: + return &struct { + *Charger + api.ChargerEx + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.Resurrector + }{ + Charger: base, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery == nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector != nil: + return &struct { + *Charger + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.Resurrector + }{ + Charger: base, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery == nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector != nil: + return &struct { + *Charger + api.ChargerEx + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.Resurrector + }{ + Charger: base, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery == nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector != nil: + return &struct { + *Charger + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseSwitcher + api.Resurrector + }{ + Charger: base, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery == nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector != nil: + return &struct { + *Charger + api.ChargerEx + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseSwitcher + api.Resurrector + }{ + Charger: base, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery == nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector != nil: + return &struct { + *Charger + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseSwitcher + api.Resurrector + }{ + Charger: base, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery == nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector != nil: + return &struct { + *Charger + api.ChargerEx + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseSwitcher + api.Resurrector + }{ + Charger: base, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery != nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector == nil: + return &struct { + *Charger + api.Battery + api.Meter + api.MeterEnergy + api.PhaseCurrents + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + } + + case battery != nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector == nil: + return &struct { + *Charger + api.Battery + api.ChargerEx + api.Meter + api.MeterEnergy + api.PhaseCurrents + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + } + + case battery != nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector == nil: + return &struct { + *Charger + api.Battery + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseCurrents + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + } + + case battery != nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector == nil: + return &struct { + *Charger + api.Battery + api.ChargerEx + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseCurrents + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + } + + case battery != nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector == nil: + return &struct { + *Charger + api.Battery + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseSwitcher + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + } + + case battery != nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector == nil: + return &struct { + *Charger + api.Battery + api.ChargerEx + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseSwitcher + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + } + + case battery != nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector == nil: + return &struct { + *Charger + api.Battery + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseSwitcher + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + } + + case battery != nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector == nil: + return &struct { + *Charger + api.Battery + api.ChargerEx + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseSwitcher + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + } + + case battery != nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector != nil: + return &struct { + *Charger + api.Battery + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.Resurrector + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery != nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector != nil: + return &struct { + *Charger + api.Battery + api.ChargerEx + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.Resurrector + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery != nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector != nil: + return &struct { + *Charger + api.Battery + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.Resurrector + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery != nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil && resurrector != nil: + return &struct { + *Charger + api.Battery + api.ChargerEx + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.Resurrector + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery != nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector != nil: + return &struct { + *Charger + api.Battery + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseSwitcher + api.Resurrector + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery != nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector != nil: + return &struct { + *Charger + api.Battery + api.ChargerEx + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseSwitcher + api.Resurrector + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery != nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector != nil: + return &struct { + *Charger + api.Battery + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseSwitcher + api.Resurrector + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery != nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages == nil && resurrector != nil: + return &struct { + *Charger + api.Battery + api.ChargerEx + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseSwitcher + api.Resurrector + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery == nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Meter + api.PhaseVoltages + }{ + Charger: base, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery == nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.ChargerEx + api.Meter + api.PhaseVoltages + }{ + Charger: base, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery == nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Identifier + api.Meter + api.PhaseVoltages + }{ + Charger: base, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery == nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.ChargerEx + api.Identifier + api.Meter + api.PhaseVoltages + }{ + Charger: base, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery == nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Meter + api.PhaseSwitcher + api.PhaseVoltages + }{ + Charger: base, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery == nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.ChargerEx + api.Meter + api.PhaseSwitcher + api.PhaseVoltages + }{ + Charger: base, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery == nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Identifier + api.Meter + api.PhaseSwitcher + api.PhaseVoltages + }{ + Charger: base, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery == nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.ChargerEx + api.Identifier + api.Meter + api.PhaseSwitcher + api.PhaseVoltages + }{ + Charger: base, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery == nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Meter + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery == nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.ChargerEx + api.Meter + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery == nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Identifier + api.Meter + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery == nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.ChargerEx + api.Identifier + api.Meter + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery == nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Meter + api.PhaseSwitcher + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery == nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.ChargerEx + api.Meter + api.PhaseSwitcher + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery == nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Identifier + api.Meter + api.PhaseSwitcher + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery == nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.ChargerEx + api.Identifier + api.Meter + api.PhaseSwitcher + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery != nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Battery + api.Meter + api.PhaseVoltages + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery != nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Battery + api.ChargerEx + api.Meter + api.PhaseVoltages + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery != nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Battery + api.Identifier + api.Meter + api.PhaseVoltages + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery != nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Battery + api.ChargerEx + api.Identifier + api.Meter + api.PhaseVoltages + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery != nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Battery + api.Meter + api.PhaseSwitcher + api.PhaseVoltages + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery != nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Battery + api.ChargerEx + api.Meter + api.PhaseSwitcher + api.PhaseVoltages + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery != nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Battery + api.Identifier + api.Meter + api.PhaseSwitcher + api.PhaseVoltages + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery != nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Battery + api.ChargerEx + api.Identifier + api.Meter + api.PhaseSwitcher + api.PhaseVoltages + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery != nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Battery + api.Meter + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery != nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Battery + api.ChargerEx + api.Meter + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery != nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Battery + api.Identifier + api.Meter + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery != nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Battery + api.ChargerEx + api.Identifier + api.Meter + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery != nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Battery + api.Meter + api.PhaseSwitcher + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery != nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Battery + api.ChargerEx + api.Meter + api.PhaseSwitcher + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery != nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Battery + api.Identifier + api.Meter + api.PhaseSwitcher + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery != nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Battery + api.ChargerEx + api.Identifier + api.Meter + api.PhaseSwitcher + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery == nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Meter + api.MeterEnergy + api.PhaseVoltages + }{ + Charger: base, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery == nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.ChargerEx + api.Meter + api.MeterEnergy + api.PhaseVoltages + }{ + Charger: base, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery == nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseVoltages + }{ + Charger: base, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery == nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.ChargerEx + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseVoltages + }{ + Charger: base, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery == nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Meter + api.MeterEnergy + api.PhaseSwitcher + api.PhaseVoltages + }{ + Charger: base, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery == nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.ChargerEx + api.Meter + api.MeterEnergy + api.PhaseSwitcher + api.PhaseVoltages + }{ + Charger: base, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery == nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseSwitcher + api.PhaseVoltages + }{ + Charger: base, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery == nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.ChargerEx + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseSwitcher + api.PhaseVoltages + }{ + Charger: base, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery == nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Meter + api.MeterEnergy + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery == nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.ChargerEx + api.Meter + api.MeterEnergy + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery == nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery == nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.ChargerEx + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery == nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Meter + api.MeterEnergy + api.PhaseSwitcher + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery == nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.ChargerEx + api.Meter + api.MeterEnergy + api.PhaseSwitcher + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery == nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseSwitcher + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery == nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.ChargerEx + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseSwitcher + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery != nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Battery + api.Meter + api.MeterEnergy + api.PhaseVoltages + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery != nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Battery + api.ChargerEx + api.Meter + api.MeterEnergy + api.PhaseVoltages + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery != nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Battery + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseVoltages + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery != nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Battery + api.ChargerEx + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseVoltages + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery != nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Battery + api.Meter + api.MeterEnergy + api.PhaseSwitcher + api.PhaseVoltages + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery != nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Battery + api.ChargerEx + api.Meter + api.MeterEnergy + api.PhaseSwitcher + api.PhaseVoltages + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery != nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Battery + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseSwitcher + api.PhaseVoltages + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery != nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Battery + api.ChargerEx + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseSwitcher + api.PhaseVoltages + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery != nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Battery + api.Meter + api.MeterEnergy + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery != nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Battery + api.ChargerEx + api.Meter + api.MeterEnergy + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery != nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Battery + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery != nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Battery + api.ChargerEx + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery != nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Battery + api.Meter + api.MeterEnergy + api.PhaseSwitcher + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery != nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Battery + api.ChargerEx + api.Meter + api.MeterEnergy + api.PhaseSwitcher + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery != nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Battery + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseSwitcher + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery != nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Battery + api.ChargerEx + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseSwitcher + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery == nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Meter + api.PhaseCurrents + api.PhaseVoltages + }{ + Charger: base, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery == nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.ChargerEx + api.Meter + api.PhaseCurrents + api.PhaseVoltages + }{ + Charger: base, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery == nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Identifier + api.Meter + api.PhaseCurrents + api.PhaseVoltages + }{ + Charger: base, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery == nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.ChargerEx + api.Identifier + api.Meter + api.PhaseCurrents + api.PhaseVoltages + }{ + Charger: base, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery == nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Meter + api.PhaseCurrents + api.PhaseSwitcher + api.PhaseVoltages + }{ + Charger: base, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery == nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.ChargerEx + api.Meter + api.PhaseCurrents + api.PhaseSwitcher + api.PhaseVoltages + }{ + Charger: base, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery == nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Identifier + api.Meter + api.PhaseCurrents + api.PhaseSwitcher + api.PhaseVoltages + }{ + Charger: base, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery == nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.ChargerEx + api.Identifier + api.Meter + api.PhaseCurrents + api.PhaseSwitcher + api.PhaseVoltages + }{ + Charger: base, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery == nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Meter + api.PhaseCurrents + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery == nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.ChargerEx + api.Meter + api.PhaseCurrents + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery == nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Identifier + api.Meter + api.PhaseCurrents + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery == nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.ChargerEx + api.Identifier + api.Meter + api.PhaseCurrents + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery == nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Meter + api.PhaseCurrents + api.PhaseSwitcher + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery == nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.ChargerEx + api.Meter + api.PhaseCurrents + api.PhaseSwitcher + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery == nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Identifier + api.Meter + api.PhaseCurrents + api.PhaseSwitcher + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery == nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.ChargerEx + api.Identifier + api.Meter + api.PhaseCurrents + api.PhaseSwitcher + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery != nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Battery + api.Meter + api.PhaseCurrents + api.PhaseVoltages + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery != nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Battery + api.ChargerEx + api.Meter + api.PhaseCurrents + api.PhaseVoltages + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery != nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Battery + api.Identifier + api.Meter + api.PhaseCurrents + api.PhaseVoltages + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery != nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Battery + api.ChargerEx + api.Identifier + api.Meter + api.PhaseCurrents + api.PhaseVoltages + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery != nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Battery + api.Meter + api.PhaseCurrents + api.PhaseSwitcher + api.PhaseVoltages + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery != nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Battery + api.ChargerEx + api.Meter + api.PhaseCurrents + api.PhaseSwitcher + api.PhaseVoltages + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery != nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Battery + api.Identifier + api.Meter + api.PhaseCurrents + api.PhaseSwitcher + api.PhaseVoltages + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery != nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Battery + api.ChargerEx + api.Identifier + api.Meter + api.PhaseCurrents + api.PhaseSwitcher + api.PhaseVoltages + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery != nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Battery + api.Meter + api.PhaseCurrents + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery != nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Battery + api.ChargerEx + api.Meter + api.PhaseCurrents + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery != nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Battery + api.Identifier + api.Meter + api.PhaseCurrents + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery != nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Battery + api.ChargerEx + api.Identifier + api.Meter + api.PhaseCurrents + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery != nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Battery + api.Meter + api.PhaseCurrents + api.PhaseSwitcher + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery != nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Battery + api.ChargerEx + api.Meter + api.PhaseCurrents + api.PhaseSwitcher + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery != nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Battery + api.Identifier + api.Meter + api.PhaseCurrents + api.PhaseSwitcher + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery != nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Battery + api.ChargerEx + api.Identifier + api.Meter + api.PhaseCurrents + api.PhaseSwitcher + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery == nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseVoltages + }{ + Charger: base, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery == nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.ChargerEx + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseVoltages + }{ + Charger: base, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery == nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseVoltages + }{ + Charger: base, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery == nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.ChargerEx + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseVoltages + }{ + Charger: base, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery == nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseSwitcher + api.PhaseVoltages + }{ + Charger: base, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery == nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.ChargerEx + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseSwitcher + api.PhaseVoltages + }{ + Charger: base, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery == nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseSwitcher + api.PhaseVoltages + }{ + Charger: base, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery == nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.ChargerEx + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseSwitcher + api.PhaseVoltages + }{ + Charger: base, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery == nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery == nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.ChargerEx + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery == nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery == nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.ChargerEx + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery == nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseSwitcher + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery == nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.ChargerEx + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseSwitcher + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery == nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseSwitcher + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery == nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.ChargerEx + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseSwitcher + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery != nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Battery + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseVoltages + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery != nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Battery + api.ChargerEx + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseVoltages + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery != nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Battery + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseVoltages + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery != nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Battery + api.ChargerEx + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseVoltages + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery != nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Battery + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseSwitcher + api.PhaseVoltages + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery != nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Battery + api.ChargerEx + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseSwitcher + api.PhaseVoltages + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery != nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Battery + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseSwitcher + api.PhaseVoltages + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery != nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector == nil: + return &struct { + *Charger + api.Battery + api.ChargerEx + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseSwitcher + api.PhaseVoltages + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery != nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Battery + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery != nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Battery + api.ChargerEx + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery != nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Battery + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery != nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Battery + api.ChargerEx + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery != nil && chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Battery + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseSwitcher + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery != nil && chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Battery + api.ChargerEx + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseSwitcher + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery != nil && chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Battery + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseSwitcher + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + + case battery != nil && chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages != nil && resurrector != nil: + return &struct { + *Charger + api.Battery + api.ChargerEx + api.Identifier + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseSwitcher + api.PhaseVoltages + api.Resurrector + }{ + Charger: base, + Battery: &decorateCustomBatteryImpl{ + battery: battery, + }, + ChargerEx: &decorateCustomChargerExImpl{ + chargerEx: chargerEx, + }, + Identifier: &decorateCustomIdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateCustomMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateCustomMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateCustomPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseSwitcher: &decorateCustomPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + PhaseVoltages: &decorateCustomPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + Resurrector: &decorateCustomResurrectorImpl{ + resurrector: resurrector, + }, + } + } + + return nil +} + +type decorateCustomBatteryImpl struct { + battery func() (float64, error) +} + +func (impl *decorateCustomBatteryImpl) Soc() (float64, error) { + return impl.battery() +} + +type decorateCustomChargerExImpl struct { + chargerEx func(float64) error +} + +func (impl *decorateCustomChargerExImpl) MaxCurrentMillis(p0 float64) error { + return impl.chargerEx(p0) +} type decorateCustomIdentifierImpl struct { identifier func() (string, error) @@ -2736,6 +7504,14 @@ func (impl *decorateCustomMeterEnergyImpl) TotalEnergy() (float64, error) { return impl.meterEnergy() } +type decorateCustomPhaseCurrentsImpl struct { + phaseCurrents func() (float64, float64, float64, error) +} + +func (impl *decorateCustomPhaseCurrentsImpl) Currents() (float64, float64, float64, error) { + return impl.phaseCurrents() +} + type decorateCustomPhaseSwitcherImpl struct { phaseSwitcher func(int) error } @@ -2744,6 +7520,14 @@ func (impl *decorateCustomPhaseSwitcherImpl) Phases1p3p(p0 int) error { return impl.phaseSwitcher(p0) } +type decorateCustomPhaseVoltagesImpl struct { + phaseVoltages func() (float64, float64, float64, error) +} + +func (impl *decorateCustomPhaseVoltagesImpl) Voltages() (float64, float64, float64, error) { + return impl.phaseVoltages() +} + type decorateCustomResurrectorImpl struct { resurrector func() error } diff --git a/charger/eebus_decorators.go b/charger/eebus_decorators.go index 8ecd8d5011..e2ffa695f7 100644 --- a/charger/eebus_decorators.go +++ b/charger/eebus_decorators.go @@ -8,7 +8,7 @@ import ( func decorateEEBus(base *EEBus, meter func() (float64, error), phaseCurrents func() (float64, float64, float64, error), chargeRater func() (float64, error)) api.Charger { switch { - case chargeRater == nil && meter == nil && phaseCurrents == nil: + case chargeRater == nil && meter == nil: return base case chargeRater == nil && meter != nil && phaseCurrents == nil: @@ -22,17 +22,6 @@ func decorateEEBus(base *EEBus, meter func() (float64, error), phaseCurrents fun }, } - case chargeRater == nil && meter == nil && phaseCurrents != nil: - return &struct { - *EEBus - api.PhaseCurrents - }{ - EEBus: base, - PhaseCurrents: &decorateEEBusPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case chargeRater == nil && meter != nil && phaseCurrents != nil: return &struct { *EEBus @@ -48,7 +37,7 @@ func decorateEEBus(base *EEBus, meter func() (float64, error), phaseCurrents fun }, } - case chargeRater != nil && meter == nil && phaseCurrents == nil: + case chargeRater != nil && meter == nil: return &struct { *EEBus api.ChargeRater @@ -74,21 +63,6 @@ func decorateEEBus(base *EEBus, meter func() (float64, error), phaseCurrents fun }, } - case chargeRater != nil && meter == nil && phaseCurrents != nil: - return &struct { - *EEBus - api.ChargeRater - api.PhaseCurrents - }{ - EEBus: base, - ChargeRater: &decorateEEBusChargeRaterImpl{ - chargeRater: chargeRater, - }, - PhaseCurrents: &decorateEEBusPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case chargeRater != nil && meter != nil && phaseCurrents != nil: return &struct { *EEBus diff --git a/charger/em2go_decorators.go b/charger/em2go_decorators.go index 96c4efc79b..d1fab27dda 100644 --- a/charger/em2go_decorators.go +++ b/charger/em2go_decorators.go @@ -8,10 +8,10 @@ import ( func decorateEm2Go(base *Em2Go, chargerEx func(float64) error, phaseSwitcher func(int) error, phaseGetter func() (int, error)) api.Charger { switch { - case chargerEx == nil && phaseGetter == nil && phaseSwitcher == nil: + case chargerEx == nil && phaseSwitcher == nil: return base - case chargerEx != nil && phaseGetter == nil && phaseSwitcher == nil: + case chargerEx != nil && phaseSwitcher == nil: return &struct { *Em2Go api.ChargerEx @@ -48,32 +48,6 @@ func decorateEm2Go(base *Em2Go, chargerEx func(float64) error, phaseSwitcher fun }, } - case chargerEx == nil && phaseGetter != nil && phaseSwitcher == nil: - return &struct { - *Em2Go - api.PhaseGetter - }{ - Em2Go: base, - PhaseGetter: &decorateEm2GoPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - } - - case chargerEx != nil && phaseGetter != nil && phaseSwitcher == nil: - return &struct { - *Em2Go - api.ChargerEx - api.PhaseGetter - }{ - Em2Go: base, - ChargerEx: &decorateEm2GoChargerExImpl{ - chargerEx: chargerEx, - }, - PhaseGetter: &decorateEm2GoPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - } - case chargerEx == nil && phaseGetter != nil && phaseSwitcher != nil: return &struct { *Em2Go diff --git a/charger/evsewifi_decorators.go b/charger/evsewifi_decorators.go index ae4da2a9db..24179ed94d 100644 --- a/charger/evsewifi_decorators.go +++ b/charger/evsewifi_decorators.go @@ -8,7 +8,7 @@ import ( func decorateEVSE(base *EVSEWifi, meter func() (float64, error), meterEnergy func() (float64, error), phaseCurrents func() (float64, float64, float64, error), phaseVoltages func() (float64, float64, float64, error), chargerEx func(float64) error, identifier func() (string, error)) api.Charger { switch { - case chargerEx == nil && identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: + case chargerEx == nil && identifier == nil && meter == nil: return base case chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: @@ -22,17 +22,6 @@ func decorateEVSE(base *EVSEWifi, meter func() (float64, error), meterEnergy fun }, } - case chargerEx == nil && identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *EVSEWifi - api.MeterEnergy - }{ - EVSEWifi: base, - MeterEnergy: &decorateEVSEMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - case chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { *EVSEWifi @@ -48,17 +37,6 @@ func decorateEVSE(base *EVSEWifi, meter func() (float64, error), meterEnergy fun }, } - case chargerEx == nil && identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *EVSEWifi - api.PhaseCurrents - }{ - EVSEWifi: base, - PhaseCurrents: &decorateEVSEPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: return &struct { *EVSEWifi @@ -74,21 +52,6 @@ func decorateEVSE(base *EVSEWifi, meter func() (float64, error), meterEnergy fun }, } - case chargerEx == nil && identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *EVSEWifi - api.MeterEnergy - api.PhaseCurrents - }{ - EVSEWifi: base, - MeterEnergy: &decorateEVSEMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateEVSEPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: return &struct { *EVSEWifi @@ -108,17 +71,6 @@ func decorateEVSE(base *EVSEWifi, meter func() (float64, error), meterEnergy fun }, } - case chargerEx == nil && identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *EVSEWifi - api.PhaseVoltages - }{ - EVSEWifi: base, - PhaseVoltages: &decorateEVSEPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { *EVSEWifi @@ -134,21 +86,6 @@ func decorateEVSE(base *EVSEWifi, meter func() (float64, error), meterEnergy fun }, } - case chargerEx == nil && identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *EVSEWifi - api.MeterEnergy - api.PhaseVoltages - }{ - EVSEWifi: base, - MeterEnergy: &decorateEVSEMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateEVSEPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { *EVSEWifi @@ -168,21 +105,6 @@ func decorateEVSE(base *EVSEWifi, meter func() (float64, error), meterEnergy fun }, } - case chargerEx == nil && identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *EVSEWifi - api.PhaseCurrents - api.PhaseVoltages - }{ - EVSEWifi: base, - PhaseCurrents: &decorateEVSEPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateEVSEPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: return &struct { *EVSEWifi @@ -202,25 +124,6 @@ func decorateEVSE(base *EVSEWifi, meter func() (float64, error), meterEnergy fun }, } - case chargerEx == nil && identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *EVSEWifi - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - EVSEWifi: base, - MeterEnergy: &decorateEVSEMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateEVSEPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateEVSEPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: return &struct { *EVSEWifi @@ -244,7 +147,7 @@ func decorateEVSE(base *EVSEWifi, meter func() (float64, error), meterEnergy fun }, } - case chargerEx != nil && identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: + case chargerEx != nil && identifier == nil && meter == nil: return &struct { *EVSEWifi api.ChargerEx @@ -270,21 +173,6 @@ func decorateEVSE(base *EVSEWifi, meter func() (float64, error), meterEnergy fun }, } - case chargerEx != nil && identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *EVSEWifi - api.ChargerEx - api.MeterEnergy - }{ - EVSEWifi: base, - ChargerEx: &decorateEVSEChargerExImpl{ - chargerEx: chargerEx, - }, - MeterEnergy: &decorateEVSEMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - case chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { *EVSEWifi @@ -304,21 +192,6 @@ func decorateEVSE(base *EVSEWifi, meter func() (float64, error), meterEnergy fun }, } - case chargerEx != nil && identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *EVSEWifi - api.ChargerEx - api.PhaseCurrents - }{ - EVSEWifi: base, - ChargerEx: &decorateEVSEChargerExImpl{ - chargerEx: chargerEx, - }, - PhaseCurrents: &decorateEVSEPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: return &struct { *EVSEWifi @@ -338,25 +211,6 @@ func decorateEVSE(base *EVSEWifi, meter func() (float64, error), meterEnergy fun }, } - case chargerEx != nil && identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *EVSEWifi - api.ChargerEx - api.MeterEnergy - api.PhaseCurrents - }{ - EVSEWifi: base, - ChargerEx: &decorateEVSEChargerExImpl{ - chargerEx: chargerEx, - }, - MeterEnergy: &decorateEVSEMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateEVSEPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: return &struct { *EVSEWifi @@ -380,21 +234,6 @@ func decorateEVSE(base *EVSEWifi, meter func() (float64, error), meterEnergy fun }, } - case chargerEx != nil && identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *EVSEWifi - api.ChargerEx - api.PhaseVoltages - }{ - EVSEWifi: base, - ChargerEx: &decorateEVSEChargerExImpl{ - chargerEx: chargerEx, - }, - PhaseVoltages: &decorateEVSEPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { *EVSEWifi @@ -414,25 +253,6 @@ func decorateEVSE(base *EVSEWifi, meter func() (float64, error), meterEnergy fun }, } - case chargerEx != nil && identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *EVSEWifi - api.ChargerEx - api.MeterEnergy - api.PhaseVoltages - }{ - EVSEWifi: base, - ChargerEx: &decorateEVSEChargerExImpl{ - chargerEx: chargerEx, - }, - MeterEnergy: &decorateEVSEMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateEVSEPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { *EVSEWifi @@ -456,25 +276,6 @@ func decorateEVSE(base *EVSEWifi, meter func() (float64, error), meterEnergy fun }, } - case chargerEx != nil && identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *EVSEWifi - api.ChargerEx - api.PhaseCurrents - api.PhaseVoltages - }{ - EVSEWifi: base, - ChargerEx: &decorateEVSEChargerExImpl{ - chargerEx: chargerEx, - }, - PhaseCurrents: &decorateEVSEPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateEVSEPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: return &struct { *EVSEWifi @@ -498,29 +299,6 @@ func decorateEVSE(base *EVSEWifi, meter func() (float64, error), meterEnergy fun }, } - case chargerEx != nil && identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *EVSEWifi - api.ChargerEx - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - EVSEWifi: base, - ChargerEx: &decorateEVSEChargerExImpl{ - chargerEx: chargerEx, - }, - MeterEnergy: &decorateEVSEMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateEVSEPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateEVSEPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: return &struct { *EVSEWifi @@ -548,7 +326,7 @@ func decorateEVSE(base *EVSEWifi, meter func() (float64, error), meterEnergy fun }, } - case chargerEx == nil && identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: + case chargerEx == nil && identifier != nil && meter == nil: return &struct { *EVSEWifi api.Identifier @@ -574,21 +352,6 @@ func decorateEVSE(base *EVSEWifi, meter func() (float64, error), meterEnergy fun }, } - case chargerEx == nil && identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *EVSEWifi - api.Identifier - api.MeterEnergy - }{ - EVSEWifi: base, - Identifier: &decorateEVSEIdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateEVSEMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - case chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { *EVSEWifi @@ -608,21 +371,6 @@ func decorateEVSE(base *EVSEWifi, meter func() (float64, error), meterEnergy fun }, } - case chargerEx == nil && identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *EVSEWifi - api.Identifier - api.PhaseCurrents - }{ - EVSEWifi: base, - Identifier: &decorateEVSEIdentifierImpl{ - identifier: identifier, - }, - PhaseCurrents: &decorateEVSEPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: return &struct { *EVSEWifi @@ -642,25 +390,6 @@ func decorateEVSE(base *EVSEWifi, meter func() (float64, error), meterEnergy fun }, } - case chargerEx == nil && identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *EVSEWifi - api.Identifier - api.MeterEnergy - api.PhaseCurrents - }{ - EVSEWifi: base, - Identifier: &decorateEVSEIdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateEVSEMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateEVSEPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: return &struct { *EVSEWifi @@ -684,21 +413,6 @@ func decorateEVSE(base *EVSEWifi, meter func() (float64, error), meterEnergy fun }, } - case chargerEx == nil && identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *EVSEWifi - api.Identifier - api.PhaseVoltages - }{ - EVSEWifi: base, - Identifier: &decorateEVSEIdentifierImpl{ - identifier: identifier, - }, - PhaseVoltages: &decorateEVSEPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { *EVSEWifi @@ -718,25 +432,6 @@ func decorateEVSE(base *EVSEWifi, meter func() (float64, error), meterEnergy fun }, } - case chargerEx == nil && identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *EVSEWifi - api.Identifier - api.MeterEnergy - api.PhaseVoltages - }{ - EVSEWifi: base, - Identifier: &decorateEVSEIdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateEVSEMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateEVSEPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { *EVSEWifi @@ -760,25 +455,6 @@ func decorateEVSE(base *EVSEWifi, meter func() (float64, error), meterEnergy fun }, } - case chargerEx == nil && identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *EVSEWifi - api.Identifier - api.PhaseCurrents - api.PhaseVoltages - }{ - EVSEWifi: base, - Identifier: &decorateEVSEIdentifierImpl{ - identifier: identifier, - }, - PhaseCurrents: &decorateEVSEPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateEVSEPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: return &struct { *EVSEWifi @@ -802,29 +478,6 @@ func decorateEVSE(base *EVSEWifi, meter func() (float64, error), meterEnergy fun }, } - case chargerEx == nil && identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *EVSEWifi - api.Identifier - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - EVSEWifi: base, - Identifier: &decorateEVSEIdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateEVSEMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateEVSEPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateEVSEPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: return &struct { *EVSEWifi @@ -852,7 +505,7 @@ func decorateEVSE(base *EVSEWifi, meter func() (float64, error), meterEnergy fun }, } - case chargerEx != nil && identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: + case chargerEx != nil && identifier != nil && meter == nil: return &struct { *EVSEWifi api.ChargerEx @@ -886,25 +539,6 @@ func decorateEVSE(base *EVSEWifi, meter func() (float64, error), meterEnergy fun }, } - case chargerEx != nil && identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *EVSEWifi - api.ChargerEx - api.Identifier - api.MeterEnergy - }{ - EVSEWifi: base, - ChargerEx: &decorateEVSEChargerExImpl{ - chargerEx: chargerEx, - }, - Identifier: &decorateEVSEIdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateEVSEMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - case chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { *EVSEWifi @@ -928,25 +562,6 @@ func decorateEVSE(base *EVSEWifi, meter func() (float64, error), meterEnergy fun }, } - case chargerEx != nil && identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *EVSEWifi - api.ChargerEx - api.Identifier - api.PhaseCurrents - }{ - EVSEWifi: base, - ChargerEx: &decorateEVSEChargerExImpl{ - chargerEx: chargerEx, - }, - Identifier: &decorateEVSEIdentifierImpl{ - identifier: identifier, - }, - PhaseCurrents: &decorateEVSEPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: return &struct { *EVSEWifi @@ -970,29 +585,6 @@ func decorateEVSE(base *EVSEWifi, meter func() (float64, error), meterEnergy fun }, } - case chargerEx != nil && identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *EVSEWifi - api.ChargerEx - api.Identifier - api.MeterEnergy - api.PhaseCurrents - }{ - EVSEWifi: base, - ChargerEx: &decorateEVSEChargerExImpl{ - chargerEx: chargerEx, - }, - Identifier: &decorateEVSEIdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateEVSEMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateEVSEPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: return &struct { *EVSEWifi @@ -1020,25 +612,6 @@ func decorateEVSE(base *EVSEWifi, meter func() (float64, error), meterEnergy fun }, } - case chargerEx != nil && identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *EVSEWifi - api.ChargerEx - api.Identifier - api.PhaseVoltages - }{ - EVSEWifi: base, - ChargerEx: &decorateEVSEChargerExImpl{ - chargerEx: chargerEx, - }, - Identifier: &decorateEVSEIdentifierImpl{ - identifier: identifier, - }, - PhaseVoltages: &decorateEVSEPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { *EVSEWifi @@ -1062,29 +635,6 @@ func decorateEVSE(base *EVSEWifi, meter func() (float64, error), meterEnergy fun }, } - case chargerEx != nil && identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *EVSEWifi - api.ChargerEx - api.Identifier - api.MeterEnergy - api.PhaseVoltages - }{ - EVSEWifi: base, - ChargerEx: &decorateEVSEChargerExImpl{ - chargerEx: chargerEx, - }, - Identifier: &decorateEVSEIdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateEVSEMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateEVSEPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { *EVSEWifi @@ -1112,29 +662,6 @@ func decorateEVSE(base *EVSEWifi, meter func() (float64, error), meterEnergy fun }, } - case chargerEx != nil && identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *EVSEWifi - api.ChargerEx - api.Identifier - api.PhaseCurrents - api.PhaseVoltages - }{ - EVSEWifi: base, - ChargerEx: &decorateEVSEChargerExImpl{ - chargerEx: chargerEx, - }, - Identifier: &decorateEVSEIdentifierImpl{ - identifier: identifier, - }, - PhaseCurrents: &decorateEVSEPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateEVSEPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: return &struct { *EVSEWifi @@ -1162,33 +689,6 @@ func decorateEVSE(base *EVSEWifi, meter func() (float64, error), meterEnergy fun }, } - case chargerEx != nil && identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *EVSEWifi - api.ChargerEx - api.Identifier - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - EVSEWifi: base, - ChargerEx: &decorateEVSEChargerExImpl{ - chargerEx: chargerEx, - }, - Identifier: &decorateEVSEIdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateEVSEMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateEVSEPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateEVSEPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: return &struct { *EVSEWifi diff --git a/charger/hardybarth-salia_decorators.go b/charger/hardybarth-salia_decorators.go index f54b212dca..682102629d 100644 --- a/charger/hardybarth-salia_decorators.go +++ b/charger/hardybarth-salia_decorators.go @@ -8,7 +8,7 @@ import ( func decorateSalia(base *Salia, meter func() (float64, error), meterEnergy func() (float64, error), phaseCurrents func() (float64, float64, float64, error)) api.Charger { switch { - case meter == nil && meterEnergy == nil && phaseCurrents == nil: + case meter == nil: return base case meter != nil && meterEnergy == nil && phaseCurrents == nil: @@ -22,17 +22,6 @@ func decorateSalia(base *Salia, meter func() (float64, error), meterEnergy func( }, } - case meter == nil && meterEnergy != nil && phaseCurrents == nil: - return &struct { - *Salia - api.MeterEnergy - }{ - Salia: base, - MeterEnergy: &decorateSaliaMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - case meter != nil && meterEnergy != nil && phaseCurrents == nil: return &struct { *Salia @@ -48,17 +37,6 @@ func decorateSalia(base *Salia, meter func() (float64, error), meterEnergy func( }, } - case meter == nil && meterEnergy == nil && phaseCurrents != nil: - return &struct { - *Salia - api.PhaseCurrents - }{ - Salia: base, - PhaseCurrents: &decorateSaliaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case meter != nil && meterEnergy == nil && phaseCurrents != nil: return &struct { *Salia @@ -74,21 +52,6 @@ func decorateSalia(base *Salia, meter func() (float64, error), meterEnergy func( }, } - case meter == nil && meterEnergy != nil && phaseCurrents != nil: - return &struct { - *Salia - api.MeterEnergy - api.PhaseCurrents - }{ - Salia: base, - MeterEnergy: &decorateSaliaMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateSaliaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case meter != nil && meterEnergy != nil && phaseCurrents != nil: return &struct { *Salia diff --git a/charger/keba-modbus_decorators.go b/charger/keba-modbus_decorators.go index 42f6aa1653..e6fd3da0cc 100644 --- a/charger/keba-modbus_decorators.go +++ b/charger/keba-modbus_decorators.go @@ -8,10 +8,10 @@ import ( func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() (float64, error), phaseCurrents func() (float64, float64, float64, error), identifier func() (string, error), statusReasoner func() (api.Reason, error), phaseSwitcher func(int) error, phaseGetter func() (int, error)) api.Charger { switch { - case identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher == nil && statusReasoner == nil: + case identifier == nil && meter == nil && phaseSwitcher == nil && statusReasoner == nil: return base - case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher == nil && statusReasoner == nil: + case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && statusReasoner == nil: return &struct { *Keba api.Meter @@ -22,18 +22,7 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher == nil && statusReasoner == nil: - return &struct { - *Keba - api.MeterEnergy - }{ - Keba: base, - MeterEnergy: &decorateKebaMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher == nil && statusReasoner == nil: + case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && statusReasoner == nil: return &struct { *Keba api.Meter @@ -48,18 +37,7 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher == nil && statusReasoner == nil: - return &struct { - *Keba - api.PhaseCurrents - }{ - Keba: base, - PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher == nil && statusReasoner == nil: + case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && statusReasoner == nil: return &struct { *Keba api.Meter @@ -74,22 +52,7 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher == nil && statusReasoner == nil: - return &struct { - *Keba - api.MeterEnergy - api.PhaseCurrents - }{ - Keba: base, - MeterEnergy: &decorateKebaMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher == nil && statusReasoner == nil: + case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && statusReasoner == nil: return &struct { *Keba api.Meter @@ -108,7 +71,7 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher == nil && statusReasoner == nil: + case identifier != nil && meter == nil && phaseSwitcher == nil && statusReasoner == nil: return &struct { *Keba api.Identifier @@ -119,7 +82,7 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher == nil && statusReasoner == nil: + case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && statusReasoner == nil: return &struct { *Keba api.Identifier @@ -134,22 +97,7 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher == nil && statusReasoner == nil: - return &struct { - *Keba - api.Identifier - api.MeterEnergy - }{ - Keba: base, - Identifier: &decorateKebaIdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateKebaMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher == nil && statusReasoner == nil: + case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && statusReasoner == nil: return &struct { *Keba api.Identifier @@ -168,22 +116,7 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher == nil && statusReasoner == nil: - return &struct { - *Keba - api.Identifier - api.PhaseCurrents - }{ - Keba: base, - Identifier: &decorateKebaIdentifierImpl{ - identifier: identifier, - }, - PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher == nil && statusReasoner == nil: + case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && statusReasoner == nil: return &struct { *Keba api.Identifier @@ -202,26 +135,7 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher == nil && statusReasoner == nil: - return &struct { - *Keba - api.Identifier - api.MeterEnergy - api.PhaseCurrents - }{ - Keba: base, - Identifier: &decorateKebaIdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateKebaMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher == nil && statusReasoner == nil: + case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && statusReasoner == nil: return &struct { *Keba api.Identifier @@ -244,7 +158,7 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher == nil && statusReasoner != nil: + case identifier == nil && meter == nil && phaseSwitcher == nil && statusReasoner != nil: return &struct { *Keba api.StatusReasoner @@ -255,7 +169,7 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher == nil && statusReasoner != nil: + case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && statusReasoner != nil: return &struct { *Keba api.Meter @@ -270,22 +184,7 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher == nil && statusReasoner != nil: - return &struct { - *Keba - api.MeterEnergy - api.StatusReasoner - }{ - Keba: base, - MeterEnergy: &decorateKebaMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - StatusReasoner: &decorateKebaStatusReasonerImpl{ - statusReasoner: statusReasoner, - }, - } - - case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher == nil && statusReasoner != nil: + case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && statusReasoner != nil: return &struct { *Keba api.Meter @@ -304,22 +203,7 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher == nil && statusReasoner != nil: - return &struct { - *Keba - api.PhaseCurrents - api.StatusReasoner - }{ - Keba: base, - PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - StatusReasoner: &decorateKebaStatusReasonerImpl{ - statusReasoner: statusReasoner, - }, - } - - case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher == nil && statusReasoner != nil: + case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && statusReasoner != nil: return &struct { *Keba api.Meter @@ -338,26 +222,7 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher == nil && statusReasoner != nil: - return &struct { - *Keba - api.MeterEnergy - api.PhaseCurrents - api.StatusReasoner - }{ - Keba: base, - MeterEnergy: &decorateKebaMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - StatusReasoner: &decorateKebaStatusReasonerImpl{ - statusReasoner: statusReasoner, - }, - } - - case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher == nil && statusReasoner != nil: + case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && statusReasoner != nil: return &struct { *Keba api.Meter @@ -380,7 +245,7 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher == nil && statusReasoner != nil: + case identifier != nil && meter == nil && phaseSwitcher == nil && statusReasoner != nil: return &struct { *Keba api.Identifier @@ -395,7 +260,7 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher == nil && statusReasoner != nil: + case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && statusReasoner != nil: return &struct { *Keba api.Identifier @@ -414,26 +279,7 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher == nil && statusReasoner != nil: - return &struct { - *Keba - api.Identifier - api.MeterEnergy - api.StatusReasoner - }{ - Keba: base, - Identifier: &decorateKebaIdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateKebaMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - StatusReasoner: &decorateKebaStatusReasonerImpl{ - statusReasoner: statusReasoner, - }, - } - - case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher == nil && statusReasoner != nil: + case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && statusReasoner != nil: return &struct { *Keba api.Identifier @@ -456,26 +302,7 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher == nil && statusReasoner != nil: - return &struct { - *Keba - api.Identifier - api.PhaseCurrents - api.StatusReasoner - }{ - Keba: base, - Identifier: &decorateKebaIdentifierImpl{ - identifier: identifier, - }, - PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - StatusReasoner: &decorateKebaStatusReasonerImpl{ - statusReasoner: statusReasoner, - }, - } - - case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher == nil && statusReasoner != nil: + case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && statusReasoner != nil: return &struct { *Keba api.Identifier @@ -498,30 +325,7 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher == nil && statusReasoner != nil: - return &struct { - *Keba - api.Identifier - api.MeterEnergy - api.PhaseCurrents - api.StatusReasoner - }{ - Keba: base, - Identifier: &decorateKebaIdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateKebaMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - StatusReasoner: &decorateKebaStatusReasonerImpl{ - statusReasoner: statusReasoner, - }, - } - - case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher == nil && statusReasoner != nil: + case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && statusReasoner != nil: return &struct { *Keba api.Identifier @@ -548,7 +352,7 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher != nil && statusReasoner == nil: + case identifier == nil && meter == nil && phaseGetter == nil && phaseSwitcher != nil && statusReasoner == nil: return &struct { *Keba api.PhaseSwitcher @@ -574,21 +378,6 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher != nil && statusReasoner == nil: - return &struct { - *Keba - api.MeterEnergy - api.PhaseSwitcher - }{ - Keba: base, - MeterEnergy: &decorateKebaMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseSwitcher: &decorateKebaPhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - } - case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher != nil && statusReasoner == nil: return &struct { *Keba @@ -608,21 +397,6 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && statusReasoner == nil: - return &struct { - *Keba - api.PhaseCurrents - api.PhaseSwitcher - }{ - Keba: base, - PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseSwitcher: &decorateKebaPhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - } - case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && statusReasoner == nil: return &struct { *Keba @@ -642,25 +416,6 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && statusReasoner == nil: - return &struct { - *Keba - api.MeterEnergy - api.PhaseCurrents - api.PhaseSwitcher - }{ - Keba: base, - MeterEnergy: &decorateKebaMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseSwitcher: &decorateKebaPhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - } - case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && statusReasoner == nil: return &struct { *Keba @@ -684,7 +439,7 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher != nil && statusReasoner == nil: + case identifier != nil && meter == nil && phaseGetter == nil && phaseSwitcher != nil && statusReasoner == nil: return &struct { *Keba api.Identifier @@ -718,10 +473,11 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher != nil && statusReasoner == nil: + case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher != nil && statusReasoner == nil: return &struct { *Keba api.Identifier + api.Meter api.MeterEnergy api.PhaseSwitcher }{ @@ -729,6 +485,9 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() Identifier: &decorateKebaIdentifierImpl{ identifier: identifier, }, + Meter: &decorateKebaMeterImpl{ + meter: meter, + }, MeterEnergy: &decorateKebaMeterEnergyImpl{ meterEnergy: meterEnergy, }, @@ -737,12 +496,12 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher != nil && statusReasoner == nil: + case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && statusReasoner == nil: return &struct { *Keba api.Identifier api.Meter - api.MeterEnergy + api.PhaseCurrents api.PhaseSwitcher }{ Keba: base, @@ -752,18 +511,20 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() Meter: &decorateKebaMeterImpl{ meter: meter, }, - MeterEnergy: &decorateKebaMeterEnergyImpl{ - meterEnergy: meterEnergy, + PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, }, PhaseSwitcher: &decorateKebaPhaseSwitcherImpl{ phaseSwitcher: phaseSwitcher, }, } - case identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && statusReasoner == nil: + case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && statusReasoner == nil: return &struct { *Keba api.Identifier + api.Meter + api.MeterEnergy api.PhaseCurrents api.PhaseSwitcher }{ @@ -771,6 +532,12 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() Identifier: &decorateKebaIdentifierImpl{ identifier: identifier, }, + Meter: &decorateKebaMeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateKebaMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, @@ -779,80 +546,7 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && statusReasoner == nil: - return &struct { - *Keba - api.Identifier - api.Meter - api.PhaseCurrents - api.PhaseSwitcher - }{ - Keba: base, - Identifier: &decorateKebaIdentifierImpl{ - identifier: identifier, - }, - Meter: &decorateKebaMeterImpl{ - meter: meter, - }, - PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseSwitcher: &decorateKebaPhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - } - - case identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && statusReasoner == nil: - return &struct { - *Keba - api.Identifier - api.MeterEnergy - api.PhaseCurrents - api.PhaseSwitcher - }{ - Keba: base, - Identifier: &decorateKebaIdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateKebaMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseSwitcher: &decorateKebaPhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - } - - case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && statusReasoner == nil: - return &struct { - *Keba - api.Identifier - api.Meter - api.MeterEnergy - api.PhaseCurrents - api.PhaseSwitcher - }{ - Keba: base, - Identifier: &decorateKebaIdentifierImpl{ - identifier: identifier, - }, - Meter: &decorateKebaMeterImpl{ - meter: meter, - }, - MeterEnergy: &decorateKebaMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseSwitcher: &decorateKebaPhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - } - - case identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher != nil && statusReasoner != nil: + case identifier == nil && meter == nil && phaseGetter == nil && phaseSwitcher != nil && statusReasoner != nil: return &struct { *Keba api.PhaseSwitcher @@ -886,25 +580,6 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher != nil && statusReasoner != nil: - return &struct { - *Keba - api.MeterEnergy - api.PhaseSwitcher - api.StatusReasoner - }{ - Keba: base, - MeterEnergy: &decorateKebaMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseSwitcher: &decorateKebaPhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - StatusReasoner: &decorateKebaStatusReasonerImpl{ - statusReasoner: statusReasoner, - }, - } - case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher != nil && statusReasoner != nil: return &struct { *Keba @@ -928,25 +603,6 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && statusReasoner != nil: - return &struct { - *Keba - api.PhaseCurrents - api.PhaseSwitcher - api.StatusReasoner - }{ - Keba: base, - PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseSwitcher: &decorateKebaPhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - StatusReasoner: &decorateKebaStatusReasonerImpl{ - statusReasoner: statusReasoner, - }, - } - case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && statusReasoner != nil: return &struct { *Keba @@ -970,29 +626,6 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && statusReasoner != nil: - return &struct { - *Keba - api.MeterEnergy - api.PhaseCurrents - api.PhaseSwitcher - api.StatusReasoner - }{ - Keba: base, - MeterEnergy: &decorateKebaMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseSwitcher: &decorateKebaPhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - StatusReasoner: &decorateKebaStatusReasonerImpl{ - statusReasoner: statusReasoner, - }, - } - case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && statusReasoner != nil: return &struct { *Keba @@ -1020,7 +653,7 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher != nil && statusReasoner != nil: + case identifier != nil && meter == nil && phaseGetter == nil && phaseSwitcher != nil && statusReasoner != nil: return &struct { *Keba api.Identifier @@ -1062,29 +695,6 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher != nil && statusReasoner != nil: - return &struct { - *Keba - api.Identifier - api.MeterEnergy - api.PhaseSwitcher - api.StatusReasoner - }{ - Keba: base, - Identifier: &decorateKebaIdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateKebaMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseSwitcher: &decorateKebaPhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - StatusReasoner: &decorateKebaStatusReasonerImpl{ - statusReasoner: statusReasoner, - }, - } - case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher != nil && statusReasoner != nil: return &struct { *Keba @@ -1112,29 +722,6 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && statusReasoner != nil: - return &struct { - *Keba - api.Identifier - api.PhaseCurrents - api.PhaseSwitcher - api.StatusReasoner - }{ - Keba: base, - Identifier: &decorateKebaIdentifierImpl{ - identifier: identifier, - }, - PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseSwitcher: &decorateKebaPhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - StatusReasoner: &decorateKebaStatusReasonerImpl{ - statusReasoner: statusReasoner, - }, - } - case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && statusReasoner != nil: return &struct { *Keba @@ -1162,33 +749,6 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && statusReasoner != nil: - return &struct { - *Keba - api.Identifier - api.MeterEnergy - api.PhaseCurrents - api.PhaseSwitcher - api.StatusReasoner - }{ - Keba: base, - Identifier: &decorateKebaIdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateKebaMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseSwitcher: &decorateKebaPhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - StatusReasoner: &decorateKebaStatusReasonerImpl{ - statusReasoner: statusReasoner, - }, - } - case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && statusReasoner != nil: return &struct { *Keba @@ -1215,751 +775,18 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() PhaseSwitcher: &decorateKebaPhaseSwitcherImpl{ phaseSwitcher: phaseSwitcher, }, - StatusReasoner: &decorateKebaStatusReasonerImpl{ - statusReasoner: statusReasoner, - }, - } - - case identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher == nil && statusReasoner == nil: - return &struct { - *Keba - api.PhaseGetter - }{ - Keba: base, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - } - - case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher == nil && statusReasoner == nil: - return &struct { - *Keba - api.Meter - api.PhaseGetter - }{ - Keba: base, - Meter: &decorateKebaMeterImpl{ - meter: meter, - }, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - } - - case identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher == nil && statusReasoner == nil: - return &struct { - *Keba - api.MeterEnergy - api.PhaseGetter - }{ - Keba: base, - MeterEnergy: &decorateKebaMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - } - - case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher == nil && statusReasoner == nil: - return &struct { - *Keba - api.Meter - api.MeterEnergy - api.PhaseGetter - }{ - Keba: base, - Meter: &decorateKebaMeterImpl{ - meter: meter, - }, - MeterEnergy: &decorateKebaMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - } - - case identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher == nil && statusReasoner == nil: - return &struct { - *Keba - api.PhaseCurrents - api.PhaseGetter - }{ - Keba: base, - PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - } - - case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher == nil && statusReasoner == nil: - return &struct { - *Keba - api.Meter - api.PhaseCurrents - api.PhaseGetter - }{ - Keba: base, - Meter: &decorateKebaMeterImpl{ - meter: meter, - }, - PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - } - - case identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher == nil && statusReasoner == nil: - return &struct { - *Keba - api.MeterEnergy - api.PhaseCurrents - api.PhaseGetter - }{ - Keba: base, - MeterEnergy: &decorateKebaMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - } - - case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher == nil && statusReasoner == nil: - return &struct { - *Keba - api.Meter - api.MeterEnergy - api.PhaseCurrents - api.PhaseGetter - }{ - Keba: base, - Meter: &decorateKebaMeterImpl{ - meter: meter, - }, - MeterEnergy: &decorateKebaMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - } - - case identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher == nil && statusReasoner == nil: - return &struct { - *Keba - api.Identifier - api.PhaseGetter - }{ - Keba: base, - Identifier: &decorateKebaIdentifierImpl{ - identifier: identifier, - }, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - } - - case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher == nil && statusReasoner == nil: - return &struct { - *Keba - api.Identifier - api.Meter - api.PhaseGetter - }{ - Keba: base, - Identifier: &decorateKebaIdentifierImpl{ - identifier: identifier, - }, - Meter: &decorateKebaMeterImpl{ - meter: meter, - }, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - } - - case identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher == nil && statusReasoner == nil: - return &struct { - *Keba - api.Identifier - api.MeterEnergy - api.PhaseGetter - }{ - Keba: base, - Identifier: &decorateKebaIdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateKebaMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - } - - case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher == nil && statusReasoner == nil: - return &struct { - *Keba - api.Identifier - api.Meter - api.MeterEnergy - api.PhaseGetter - }{ - Keba: base, - Identifier: &decorateKebaIdentifierImpl{ - identifier: identifier, - }, - Meter: &decorateKebaMeterImpl{ - meter: meter, - }, - MeterEnergy: &decorateKebaMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - } - - case identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher == nil && statusReasoner == nil: - return &struct { - *Keba - api.Identifier - api.PhaseCurrents - api.PhaseGetter - }{ - Keba: base, - Identifier: &decorateKebaIdentifierImpl{ - identifier: identifier, - }, - PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - } - - case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher == nil && statusReasoner == nil: - return &struct { - *Keba - api.Identifier - api.Meter - api.PhaseCurrents - api.PhaseGetter - }{ - Keba: base, - Identifier: &decorateKebaIdentifierImpl{ - identifier: identifier, - }, - Meter: &decorateKebaMeterImpl{ - meter: meter, - }, - PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - } - - case identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher == nil && statusReasoner == nil: - return &struct { - *Keba - api.Identifier - api.MeterEnergy - api.PhaseCurrents - api.PhaseGetter - }{ - Keba: base, - Identifier: &decorateKebaIdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateKebaMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - } - - case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher == nil && statusReasoner == nil: - return &struct { - *Keba - api.Identifier - api.Meter - api.MeterEnergy - api.PhaseCurrents - api.PhaseGetter - }{ - Keba: base, - Identifier: &decorateKebaIdentifierImpl{ - identifier: identifier, - }, - Meter: &decorateKebaMeterImpl{ - meter: meter, - }, - MeterEnergy: &decorateKebaMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - } - - case identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher == nil && statusReasoner != nil: - return &struct { - *Keba - api.PhaseGetter - api.StatusReasoner - }{ - Keba: base, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - StatusReasoner: &decorateKebaStatusReasonerImpl{ - statusReasoner: statusReasoner, - }, - } - - case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher == nil && statusReasoner != nil: - return &struct { - *Keba - api.Meter - api.PhaseGetter - api.StatusReasoner - }{ - Keba: base, - Meter: &decorateKebaMeterImpl{ - meter: meter, - }, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - StatusReasoner: &decorateKebaStatusReasonerImpl{ - statusReasoner: statusReasoner, - }, - } - - case identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher == nil && statusReasoner != nil: - return &struct { - *Keba - api.MeterEnergy - api.PhaseGetter - api.StatusReasoner - }{ - Keba: base, - MeterEnergy: &decorateKebaMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - StatusReasoner: &decorateKebaStatusReasonerImpl{ - statusReasoner: statusReasoner, - }, - } - - case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher == nil && statusReasoner != nil: - return &struct { - *Keba - api.Meter - api.MeterEnergy - api.PhaseGetter - api.StatusReasoner - }{ - Keba: base, - Meter: &decorateKebaMeterImpl{ - meter: meter, - }, - MeterEnergy: &decorateKebaMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - StatusReasoner: &decorateKebaStatusReasonerImpl{ - statusReasoner: statusReasoner, - }, - } - - case identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher == nil && statusReasoner != nil: - return &struct { - *Keba - api.PhaseCurrents - api.PhaseGetter - api.StatusReasoner - }{ - Keba: base, - PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - StatusReasoner: &decorateKebaStatusReasonerImpl{ - statusReasoner: statusReasoner, - }, - } - - case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher == nil && statusReasoner != nil: - return &struct { - *Keba - api.Meter - api.PhaseCurrents - api.PhaseGetter - api.StatusReasoner - }{ - Keba: base, - Meter: &decorateKebaMeterImpl{ - meter: meter, - }, - PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - StatusReasoner: &decorateKebaStatusReasonerImpl{ - statusReasoner: statusReasoner, - }, - } - - case identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher == nil && statusReasoner != nil: - return &struct { - *Keba - api.MeterEnergy - api.PhaseCurrents - api.PhaseGetter - api.StatusReasoner - }{ - Keba: base, - MeterEnergy: &decorateKebaMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - StatusReasoner: &decorateKebaStatusReasonerImpl{ - statusReasoner: statusReasoner, - }, - } - - case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher == nil && statusReasoner != nil: - return &struct { - *Keba - api.Meter - api.MeterEnergy - api.PhaseCurrents - api.PhaseGetter - api.StatusReasoner - }{ - Keba: base, - Meter: &decorateKebaMeterImpl{ - meter: meter, - }, - MeterEnergy: &decorateKebaMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - StatusReasoner: &decorateKebaStatusReasonerImpl{ - statusReasoner: statusReasoner, - }, - } - - case identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher == nil && statusReasoner != nil: - return &struct { - *Keba - api.Identifier - api.PhaseGetter - api.StatusReasoner - }{ - Keba: base, - Identifier: &decorateKebaIdentifierImpl{ - identifier: identifier, - }, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - StatusReasoner: &decorateKebaStatusReasonerImpl{ - statusReasoner: statusReasoner, - }, - } - - case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher == nil && statusReasoner != nil: - return &struct { - *Keba - api.Identifier - api.Meter - api.PhaseGetter - api.StatusReasoner - }{ - Keba: base, - Identifier: &decorateKebaIdentifierImpl{ - identifier: identifier, - }, - Meter: &decorateKebaMeterImpl{ - meter: meter, - }, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - StatusReasoner: &decorateKebaStatusReasonerImpl{ - statusReasoner: statusReasoner, - }, - } - - case identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher == nil && statusReasoner != nil: - return &struct { - *Keba - api.Identifier - api.MeterEnergy - api.PhaseGetter - api.StatusReasoner - }{ - Keba: base, - Identifier: &decorateKebaIdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateKebaMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - StatusReasoner: &decorateKebaStatusReasonerImpl{ - statusReasoner: statusReasoner, - }, - } - - case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher == nil && statusReasoner != nil: - return &struct { - *Keba - api.Identifier - api.Meter - api.MeterEnergy - api.PhaseGetter - api.StatusReasoner - }{ - Keba: base, - Identifier: &decorateKebaIdentifierImpl{ - identifier: identifier, - }, - Meter: &decorateKebaMeterImpl{ - meter: meter, - }, - MeterEnergy: &decorateKebaMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - StatusReasoner: &decorateKebaStatusReasonerImpl{ - statusReasoner: statusReasoner, - }, - } - - case identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher == nil && statusReasoner != nil: - return &struct { - *Keba - api.Identifier - api.PhaseCurrents - api.PhaseGetter - api.StatusReasoner - }{ - Keba: base, - Identifier: &decorateKebaIdentifierImpl{ - identifier: identifier, - }, - PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - StatusReasoner: &decorateKebaStatusReasonerImpl{ - statusReasoner: statusReasoner, - }, - } - - case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher == nil && statusReasoner != nil: - return &struct { - *Keba - api.Identifier - api.Meter - api.PhaseCurrents - api.PhaseGetter - api.StatusReasoner - }{ - Keba: base, - Identifier: &decorateKebaIdentifierImpl{ - identifier: identifier, - }, - Meter: &decorateKebaMeterImpl{ - meter: meter, - }, - PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - StatusReasoner: &decorateKebaStatusReasonerImpl{ - statusReasoner: statusReasoner, - }, - } - - case identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher == nil && statusReasoner != nil: - return &struct { - *Keba - api.Identifier - api.MeterEnergy - api.PhaseCurrents - api.PhaseGetter - api.StatusReasoner - }{ - Keba: base, - Identifier: &decorateKebaIdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateKebaMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - StatusReasoner: &decorateKebaStatusReasonerImpl{ - statusReasoner: statusReasoner, - }, - } - - case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher == nil && statusReasoner != nil: - return &struct { - *Keba - api.Identifier - api.Meter - api.MeterEnergy - api.PhaseCurrents - api.PhaseGetter - api.StatusReasoner - }{ - Keba: base, - Identifier: &decorateKebaIdentifierImpl{ - identifier: identifier, - }, - Meter: &decorateKebaMeterImpl{ - meter: meter, - }, - MeterEnergy: &decorateKebaMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - StatusReasoner: &decorateKebaStatusReasonerImpl{ - statusReasoner: statusReasoner, - }, - } - - case identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && statusReasoner == nil: - return &struct { - *Keba - api.PhaseGetter - api.PhaseSwitcher - }{ - Keba: base, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - PhaseSwitcher: &decorateKebaPhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - } - - case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && statusReasoner == nil: - return &struct { - *Keba - api.Meter - api.PhaseGetter - api.PhaseSwitcher - }{ - Keba: base, - Meter: &decorateKebaMeterImpl{ - meter: meter, - }, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - PhaseSwitcher: &decorateKebaPhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - } - - case identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && statusReasoner == nil: - return &struct { - *Keba - api.MeterEnergy - api.PhaseGetter - api.PhaseSwitcher - }{ - Keba: base, - MeterEnergy: &decorateKebaMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - PhaseSwitcher: &decorateKebaPhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, + StatusReasoner: &decorateKebaStatusReasonerImpl{ + statusReasoner: statusReasoner, + }, } - case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && statusReasoner == nil: + case identifier == nil && meter == nil && phaseGetter != nil && phaseSwitcher != nil && statusReasoner == nil: return &struct { *Keba - api.Meter - api.MeterEnergy api.PhaseGetter api.PhaseSwitcher }{ Keba: base, - Meter: &decorateKebaMeterImpl{ - meter: meter, - }, - MeterEnergy: &decorateKebaMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, PhaseGetter: &decorateKebaPhaseGetterImpl{ phaseGetter: phaseGetter, }, @@ -1968,16 +795,16 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && statusReasoner == nil: + case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && statusReasoner == nil: return &struct { *Keba - api.PhaseCurrents + api.Meter api.PhaseGetter api.PhaseSwitcher }{ Keba: base, - PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, + Meter: &decorateKebaMeterImpl{ + meter: meter, }, PhaseGetter: &decorateKebaPhaseGetterImpl{ phaseGetter: phaseGetter, @@ -1987,11 +814,11 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && statusReasoner == nil: + case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && statusReasoner == nil: return &struct { *Keba api.Meter - api.PhaseCurrents + api.MeterEnergy api.PhaseGetter api.PhaseSwitcher }{ @@ -1999,8 +826,8 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() Meter: &decorateKebaMeterImpl{ meter: meter, }, - PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, + MeterEnergy: &decorateKebaMeterEnergyImpl{ + meterEnergy: meterEnergy, }, PhaseGetter: &decorateKebaPhaseGetterImpl{ phaseGetter: phaseGetter, @@ -2010,17 +837,17 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && statusReasoner == nil: + case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && statusReasoner == nil: return &struct { *Keba - api.MeterEnergy + api.Meter api.PhaseCurrents api.PhaseGetter api.PhaseSwitcher }{ Keba: base, - MeterEnergy: &decorateKebaMeterEnergyImpl{ - meterEnergy: meterEnergy, + Meter: &decorateKebaMeterImpl{ + meter: meter, }, PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, @@ -2060,7 +887,7 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && statusReasoner == nil: + case identifier != nil && meter == nil && phaseGetter != nil && phaseSwitcher != nil && statusReasoner == nil: return &struct { *Keba api.Identifier @@ -2102,29 +929,6 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && statusReasoner == nil: - return &struct { - *Keba - api.Identifier - api.MeterEnergy - api.PhaseGetter - api.PhaseSwitcher - }{ - Keba: base, - Identifier: &decorateKebaIdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateKebaMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - PhaseSwitcher: &decorateKebaPhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - } - case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && statusReasoner == nil: return &struct { *Keba @@ -2152,29 +956,6 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && statusReasoner == nil: - return &struct { - *Keba - api.Identifier - api.PhaseCurrents - api.PhaseGetter - api.PhaseSwitcher - }{ - Keba: base, - Identifier: &decorateKebaIdentifierImpl{ - identifier: identifier, - }, - PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - PhaseSwitcher: &decorateKebaPhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - } - case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && statusReasoner == nil: return &struct { *Keba @@ -2202,33 +983,6 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && statusReasoner == nil: - return &struct { - *Keba - api.Identifier - api.MeterEnergy - api.PhaseCurrents - api.PhaseGetter - api.PhaseSwitcher - }{ - Keba: base, - Identifier: &decorateKebaIdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateKebaMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - PhaseSwitcher: &decorateKebaPhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - } - case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && statusReasoner == nil: return &struct { *Keba @@ -2260,7 +1014,7 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && statusReasoner != nil: + case identifier == nil && meter == nil && phaseGetter != nil && phaseSwitcher != nil && statusReasoner != nil: return &struct { *Keba api.PhaseGetter @@ -2302,29 +1056,6 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && statusReasoner != nil: - return &struct { - *Keba - api.MeterEnergy - api.PhaseGetter - api.PhaseSwitcher - api.StatusReasoner - }{ - Keba: base, - MeterEnergy: &decorateKebaMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - PhaseSwitcher: &decorateKebaPhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - StatusReasoner: &decorateKebaStatusReasonerImpl{ - statusReasoner: statusReasoner, - }, - } - case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && statusReasoner != nil: return &struct { *Keba @@ -2352,29 +1083,6 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && statusReasoner != nil: - return &struct { - *Keba - api.PhaseCurrents - api.PhaseGetter - api.PhaseSwitcher - api.StatusReasoner - }{ - Keba: base, - PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - PhaseSwitcher: &decorateKebaPhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - StatusReasoner: &decorateKebaStatusReasonerImpl{ - statusReasoner: statusReasoner, - }, - } - case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && statusReasoner != nil: return &struct { *Keba @@ -2402,33 +1110,6 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && statusReasoner != nil: - return &struct { - *Keba - api.MeterEnergy - api.PhaseCurrents - api.PhaseGetter - api.PhaseSwitcher - api.StatusReasoner - }{ - Keba: base, - MeterEnergy: &decorateKebaMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - PhaseSwitcher: &decorateKebaPhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - StatusReasoner: &decorateKebaStatusReasonerImpl{ - statusReasoner: statusReasoner, - }, - } - case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && statusReasoner != nil: return &struct { *Keba @@ -2460,7 +1141,7 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && statusReasoner != nil: + case identifier != nil && meter == nil && phaseGetter != nil && phaseSwitcher != nil && statusReasoner != nil: return &struct { *Keba api.Identifier @@ -2510,33 +1191,6 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && statusReasoner != nil: - return &struct { - *Keba - api.Identifier - api.MeterEnergy - api.PhaseGetter - api.PhaseSwitcher - api.StatusReasoner - }{ - Keba: base, - Identifier: &decorateKebaIdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateKebaMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - PhaseSwitcher: &decorateKebaPhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - StatusReasoner: &decorateKebaStatusReasonerImpl{ - statusReasoner: statusReasoner, - }, - } - case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && statusReasoner != nil: return &struct { *Keba @@ -2568,33 +1222,6 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && statusReasoner != nil: - return &struct { - *Keba - api.Identifier - api.PhaseCurrents - api.PhaseGetter - api.PhaseSwitcher - api.StatusReasoner - }{ - Keba: base, - Identifier: &decorateKebaIdentifierImpl{ - identifier: identifier, - }, - PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - PhaseSwitcher: &decorateKebaPhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - StatusReasoner: &decorateKebaStatusReasonerImpl{ - statusReasoner: statusReasoner, - }, - } - case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && statusReasoner != nil: return &struct { *Keba @@ -2626,37 +1253,6 @@ func decorateKeba(base *Keba, meter func() (float64, error), meterEnergy func() }, } - case identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && statusReasoner != nil: - return &struct { - *Keba - api.Identifier - api.MeterEnergy - api.PhaseCurrents - api.PhaseGetter - api.PhaseSwitcher - api.StatusReasoner - }{ - Keba: base, - Identifier: &decorateKebaIdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateKebaMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateKebaPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseGetter: &decorateKebaPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - PhaseSwitcher: &decorateKebaPhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - StatusReasoner: &decorateKebaStatusReasonerImpl{ - statusReasoner: statusReasoner, - }, - } - case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && statusReasoner != nil: return &struct { *Keba diff --git a/charger/keba-udp_decorators.go b/charger/keba-udp_decorators.go index ce6597dc38..137d49a595 100644 --- a/charger/keba-udp_decorators.go +++ b/charger/keba-udp_decorators.go @@ -8,7 +8,7 @@ import ( func decorateKebaUdp(base *KebaUdp, meter func() (float64, error), meterEnergy func() (float64, error), phaseCurrents func() (float64, float64, float64, error)) api.Charger { switch { - case meter == nil && meterEnergy == nil && phaseCurrents == nil: + case meter == nil: return base case meter != nil && meterEnergy == nil && phaseCurrents == nil: @@ -22,17 +22,6 @@ func decorateKebaUdp(base *KebaUdp, meter func() (float64, error), meterEnergy f }, } - case meter == nil && meterEnergy != nil && phaseCurrents == nil: - return &struct { - *KebaUdp - api.MeterEnergy - }{ - KebaUdp: base, - MeterEnergy: &decorateKebaUdpMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - case meter != nil && meterEnergy != nil && phaseCurrents == nil: return &struct { *KebaUdp @@ -48,17 +37,6 @@ func decorateKebaUdp(base *KebaUdp, meter func() (float64, error), meterEnergy f }, } - case meter == nil && meterEnergy == nil && phaseCurrents != nil: - return &struct { - *KebaUdp - api.PhaseCurrents - }{ - KebaUdp: base, - PhaseCurrents: &decorateKebaUdpPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case meter != nil && meterEnergy == nil && phaseCurrents != nil: return &struct { *KebaUdp @@ -74,21 +52,6 @@ func decorateKebaUdp(base *KebaUdp, meter func() (float64, error), meterEnergy f }, } - case meter == nil && meterEnergy != nil && phaseCurrents != nil: - return &struct { - *KebaUdp - api.MeterEnergy - api.PhaseCurrents - }{ - KebaUdp: base, - MeterEnergy: &decorateKebaUdpMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateKebaUdpPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case meter != nil && meterEnergy != nil && phaseCurrents != nil: return &struct { *KebaUdp diff --git a/charger/kse_decorators.go b/charger/kse_decorators.go index f6b46be713..9f7bdeda71 100644 --- a/charger/kse_decorators.go +++ b/charger/kse_decorators.go @@ -8,7 +8,7 @@ import ( func decorateKSE(base *KSE, phaseSwitcher func(int) error, phaseGetter func() (int, error), identifier func() (string, error)) api.Charger { switch { - case identifier == nil && phaseGetter == nil && phaseSwitcher == nil: + case identifier == nil && phaseSwitcher == nil: return base case identifier == nil && phaseGetter == nil && phaseSwitcher != nil: @@ -22,17 +22,6 @@ func decorateKSE(base *KSE, phaseSwitcher func(int) error, phaseGetter func() (i }, } - case identifier == nil && phaseGetter != nil && phaseSwitcher == nil: - return &struct { - *KSE - api.PhaseGetter - }{ - KSE: base, - PhaseGetter: &decorateKSEPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - } - case identifier == nil && phaseGetter != nil && phaseSwitcher != nil: return &struct { *KSE @@ -48,7 +37,7 @@ func decorateKSE(base *KSE, phaseSwitcher func(int) error, phaseGetter func() (i }, } - case identifier != nil && phaseGetter == nil && phaseSwitcher == nil: + case identifier != nil && phaseSwitcher == nil: return &struct { *KSE api.Identifier @@ -74,21 +63,6 @@ func decorateKSE(base *KSE, phaseSwitcher func(int) error, phaseGetter func() (i }, } - case identifier != nil && phaseGetter != nil && phaseSwitcher == nil: - return &struct { - *KSE - api.Identifier - api.PhaseGetter - }{ - KSE: base, - Identifier: &decorateKSEIdentifierImpl{ - identifier: identifier, - }, - PhaseGetter: &decorateKSEPhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - } - case identifier != nil && phaseGetter != nil && phaseSwitcher != nil: return &struct { *KSE diff --git a/charger/ocpp_decorators.go b/charger/ocpp_decorators.go index 0f84169b13..c51ac2b9fc 100644 --- a/charger/ocpp_decorators.go +++ b/charger/ocpp_decorators.go @@ -8,7 +8,7 @@ import ( func decorateOCPP(base *OCPP, meter func() (float64, error), meterEnergy func() (float64, error), phaseCurrents func() (float64, float64, float64, error), phaseVoltages func() (float64, float64, float64, error), phaseSwitcher func(int) error, battery func() (float64, error)) api.Charger { switch { - case battery == nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil: + case battery == nil && meter == nil && phaseSwitcher == nil: return base case battery == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil: @@ -22,17 +22,6 @@ func decorateOCPP(base *OCPP, meter func() (float64, error), meterEnergy func() }, } - case battery == nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil: - return &struct { - *OCPP - api.MeterEnergy - }{ - OCPP: base, - MeterEnergy: &decorateOCPPMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - case battery == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil: return &struct { *OCPP @@ -48,17 +37,6 @@ func decorateOCPP(base *OCPP, meter func() (float64, error), meterEnergy func() }, } - case battery == nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil: - return &struct { - *OCPP - api.PhaseCurrents - }{ - OCPP: base, - PhaseCurrents: &decorateOCPPPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case battery == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil: return &struct { *OCPP @@ -74,21 +52,6 @@ func decorateOCPP(base *OCPP, meter func() (float64, error), meterEnergy func() }, } - case battery == nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil: - return &struct { - *OCPP - api.MeterEnergy - api.PhaseCurrents - }{ - OCPP: base, - MeterEnergy: &decorateOCPPMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateOCPPPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case battery == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil: return &struct { *OCPP @@ -108,17 +71,6 @@ func decorateOCPP(base *OCPP, meter func() (float64, error), meterEnergy func() }, } - case battery == nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil: - return &struct { - *OCPP - api.PhaseVoltages - }{ - OCPP: base, - PhaseVoltages: &decorateOCPPPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case battery == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil: return &struct { *OCPP @@ -134,21 +86,6 @@ func decorateOCPP(base *OCPP, meter func() (float64, error), meterEnergy func() }, } - case battery == nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil: - return &struct { - *OCPP - api.MeterEnergy - api.PhaseVoltages - }{ - OCPP: base, - MeterEnergy: &decorateOCPPMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateOCPPPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case battery == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil: return &struct { *OCPP @@ -168,21 +105,6 @@ func decorateOCPP(base *OCPP, meter func() (float64, error), meterEnergy func() }, } - case battery == nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil: - return &struct { - *OCPP - api.PhaseCurrents - api.PhaseVoltages - }{ - OCPP: base, - PhaseCurrents: &decorateOCPPPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateOCPPPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case battery == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil: return &struct { *OCPP @@ -202,25 +124,6 @@ func decorateOCPP(base *OCPP, meter func() (float64, error), meterEnergy func() }, } - case battery == nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil: - return &struct { - *OCPP - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - OCPP: base, - MeterEnergy: &decorateOCPPMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateOCPPPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateOCPPPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case battery == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil: return &struct { *OCPP @@ -244,7 +147,7 @@ func decorateOCPP(base *OCPP, meter func() (float64, error), meterEnergy func() }, } - case battery == nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages == nil: + case battery == nil && meter == nil && phaseSwitcher != nil: return &struct { *OCPP api.PhaseSwitcher @@ -270,21 +173,6 @@ func decorateOCPP(base *OCPP, meter func() (float64, error), meterEnergy func() }, } - case battery == nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages == nil: - return &struct { - *OCPP - api.MeterEnergy - api.PhaseSwitcher - }{ - OCPP: base, - MeterEnergy: &decorateOCPPMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseSwitcher: &decorateOCPPPhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - } - case battery == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages == nil: return &struct { *OCPP @@ -304,21 +192,6 @@ func decorateOCPP(base *OCPP, meter func() (float64, error), meterEnergy func() }, } - case battery == nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages == nil: - return &struct { - *OCPP - api.PhaseCurrents - api.PhaseSwitcher - }{ - OCPP: base, - PhaseCurrents: &decorateOCPPPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseSwitcher: &decorateOCPPPhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - } - case battery == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages == nil: return &struct { *OCPP @@ -338,25 +211,6 @@ func decorateOCPP(base *OCPP, meter func() (float64, error), meterEnergy func() }, } - case battery == nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages == nil: - return &struct { - *OCPP - api.MeterEnergy - api.PhaseCurrents - api.PhaseSwitcher - }{ - OCPP: base, - MeterEnergy: &decorateOCPPMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateOCPPPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseSwitcher: &decorateOCPPPhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - } - case battery == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages == nil: return &struct { *OCPP @@ -380,21 +234,6 @@ func decorateOCPP(base *OCPP, meter func() (float64, error), meterEnergy func() }, } - case battery == nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages != nil: - return &struct { - *OCPP - api.PhaseSwitcher - api.PhaseVoltages - }{ - OCPP: base, - PhaseSwitcher: &decorateOCPPPhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - PhaseVoltages: &decorateOCPPPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case battery == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages != nil: return &struct { *OCPP @@ -414,25 +253,6 @@ func decorateOCPP(base *OCPP, meter func() (float64, error), meterEnergy func() }, } - case battery == nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages != nil: - return &struct { - *OCPP - api.MeterEnergy - api.PhaseSwitcher - api.PhaseVoltages - }{ - OCPP: base, - MeterEnergy: &decorateOCPPMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseSwitcher: &decorateOCPPPhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - PhaseVoltages: &decorateOCPPPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case battery == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages != nil: return &struct { *OCPP @@ -456,25 +276,6 @@ func decorateOCPP(base *OCPP, meter func() (float64, error), meterEnergy func() }, } - case battery == nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages != nil: - return &struct { - *OCPP - api.PhaseCurrents - api.PhaseSwitcher - api.PhaseVoltages - }{ - OCPP: base, - PhaseCurrents: &decorateOCPPPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseSwitcher: &decorateOCPPPhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - PhaseVoltages: &decorateOCPPPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case battery == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages != nil: return &struct { *OCPP @@ -498,29 +299,6 @@ func decorateOCPP(base *OCPP, meter func() (float64, error), meterEnergy func() }, } - case battery == nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages != nil: - return &struct { - *OCPP - api.MeterEnergy - api.PhaseCurrents - api.PhaseSwitcher - api.PhaseVoltages - }{ - OCPP: base, - MeterEnergy: &decorateOCPPMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateOCPPPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseSwitcher: &decorateOCPPPhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - PhaseVoltages: &decorateOCPPPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case battery == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages != nil: return &struct { *OCPP @@ -548,7 +326,7 @@ func decorateOCPP(base *OCPP, meter func() (float64, error), meterEnergy func() }, } - case battery != nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil: + case battery != nil && meter == nil && phaseSwitcher == nil: return &struct { *OCPP api.Battery @@ -574,21 +352,6 @@ func decorateOCPP(base *OCPP, meter func() (float64, error), meterEnergy func() }, } - case battery != nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil: - return &struct { - *OCPP - api.Battery - api.MeterEnergy - }{ - OCPP: base, - Battery: &decorateOCPPBatteryImpl{ - battery: battery, - }, - MeterEnergy: &decorateOCPPMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - case battery != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil: return &struct { *OCPP @@ -608,21 +371,6 @@ func decorateOCPP(base *OCPP, meter func() (float64, error), meterEnergy func() }, } - case battery != nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil: - return &struct { - *OCPP - api.Battery - api.PhaseCurrents - }{ - OCPP: base, - Battery: &decorateOCPPBatteryImpl{ - battery: battery, - }, - PhaseCurrents: &decorateOCPPPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case battery != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil: return &struct { *OCPP @@ -642,25 +390,6 @@ func decorateOCPP(base *OCPP, meter func() (float64, error), meterEnergy func() }, } - case battery != nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil: - return &struct { - *OCPP - api.Battery - api.MeterEnergy - api.PhaseCurrents - }{ - OCPP: base, - Battery: &decorateOCPPBatteryImpl{ - battery: battery, - }, - MeterEnergy: &decorateOCPPMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateOCPPPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case battery != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil: return &struct { *OCPP @@ -684,21 +413,6 @@ func decorateOCPP(base *OCPP, meter func() (float64, error), meterEnergy func() }, } - case battery != nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil: - return &struct { - *OCPP - api.Battery - api.PhaseVoltages - }{ - OCPP: base, - Battery: &decorateOCPPBatteryImpl{ - battery: battery, - }, - PhaseVoltages: &decorateOCPPPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case battery != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil: return &struct { *OCPP @@ -718,25 +432,6 @@ func decorateOCPP(base *OCPP, meter func() (float64, error), meterEnergy func() }, } - case battery != nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil: - return &struct { - *OCPP - api.Battery - api.MeterEnergy - api.PhaseVoltages - }{ - OCPP: base, - Battery: &decorateOCPPBatteryImpl{ - battery: battery, - }, - MeterEnergy: &decorateOCPPMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateOCPPPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case battery != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil: return &struct { *OCPP @@ -760,25 +455,6 @@ func decorateOCPP(base *OCPP, meter func() (float64, error), meterEnergy func() }, } - case battery != nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil: - return &struct { - *OCPP - api.Battery - api.PhaseCurrents - api.PhaseVoltages - }{ - OCPP: base, - Battery: &decorateOCPPBatteryImpl{ - battery: battery, - }, - PhaseCurrents: &decorateOCPPPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateOCPPPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case battery != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil: return &struct { *OCPP @@ -802,29 +478,6 @@ func decorateOCPP(base *OCPP, meter func() (float64, error), meterEnergy func() }, } - case battery != nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil: - return &struct { - *OCPP - api.Battery - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - OCPP: base, - Battery: &decorateOCPPBatteryImpl{ - battery: battery, - }, - MeterEnergy: &decorateOCPPMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateOCPPPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateOCPPPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case battery != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil: return &struct { *OCPP @@ -852,7 +505,7 @@ func decorateOCPP(base *OCPP, meter func() (float64, error), meterEnergy func() }, } - case battery != nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages == nil: + case battery != nil && meter == nil && phaseSwitcher != nil: return &struct { *OCPP api.Battery @@ -886,25 +539,6 @@ func decorateOCPP(base *OCPP, meter func() (float64, error), meterEnergy func() }, } - case battery != nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages == nil: - return &struct { - *OCPP - api.Battery - api.MeterEnergy - api.PhaseSwitcher - }{ - OCPP: base, - Battery: &decorateOCPPBatteryImpl{ - battery: battery, - }, - MeterEnergy: &decorateOCPPMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseSwitcher: &decorateOCPPPhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - } - case battery != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages == nil: return &struct { *OCPP @@ -928,25 +562,6 @@ func decorateOCPP(base *OCPP, meter func() (float64, error), meterEnergy func() }, } - case battery != nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages == nil: - return &struct { - *OCPP - api.Battery - api.PhaseCurrents - api.PhaseSwitcher - }{ - OCPP: base, - Battery: &decorateOCPPBatteryImpl{ - battery: battery, - }, - PhaseCurrents: &decorateOCPPPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseSwitcher: &decorateOCPPPhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - } - case battery != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages == nil: return &struct { *OCPP @@ -970,29 +585,6 @@ func decorateOCPP(base *OCPP, meter func() (float64, error), meterEnergy func() }, } - case battery != nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages == nil: - return &struct { - *OCPP - api.Battery - api.MeterEnergy - api.PhaseCurrents - api.PhaseSwitcher - }{ - OCPP: base, - Battery: &decorateOCPPBatteryImpl{ - battery: battery, - }, - MeterEnergy: &decorateOCPPMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateOCPPPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseSwitcher: &decorateOCPPPhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - } - case battery != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages == nil: return &struct { *OCPP @@ -1020,25 +612,6 @@ func decorateOCPP(base *OCPP, meter func() (float64, error), meterEnergy func() }, } - case battery != nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages != nil: - return &struct { - *OCPP - api.Battery - api.PhaseSwitcher - api.PhaseVoltages - }{ - OCPP: base, - Battery: &decorateOCPPBatteryImpl{ - battery: battery, - }, - PhaseSwitcher: &decorateOCPPPhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - PhaseVoltages: &decorateOCPPPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case battery != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages != nil: return &struct { *OCPP @@ -1062,29 +635,6 @@ func decorateOCPP(base *OCPP, meter func() (float64, error), meterEnergy func() }, } - case battery != nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages != nil: - return &struct { - *OCPP - api.Battery - api.MeterEnergy - api.PhaseSwitcher - api.PhaseVoltages - }{ - OCPP: base, - Battery: &decorateOCPPBatteryImpl{ - battery: battery, - }, - MeterEnergy: &decorateOCPPMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseSwitcher: &decorateOCPPPhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - PhaseVoltages: &decorateOCPPPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case battery != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher != nil && phaseVoltages != nil: return &struct { *OCPP @@ -1112,29 +662,6 @@ func decorateOCPP(base *OCPP, meter func() (float64, error), meterEnergy func() }, } - case battery != nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages != nil: - return &struct { - *OCPP - api.Battery - api.PhaseCurrents - api.PhaseSwitcher - api.PhaseVoltages - }{ - OCPP: base, - Battery: &decorateOCPPBatteryImpl{ - battery: battery, - }, - PhaseCurrents: &decorateOCPPPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseSwitcher: &decorateOCPPPhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - PhaseVoltages: &decorateOCPPPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case battery != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages != nil: return &struct { *OCPP @@ -1162,33 +689,6 @@ func decorateOCPP(base *OCPP, meter func() (float64, error), meterEnergy func() }, } - case battery != nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages != nil: - return &struct { - *OCPP - api.Battery - api.MeterEnergy - api.PhaseCurrents - api.PhaseSwitcher - api.PhaseVoltages - }{ - OCPP: base, - Battery: &decorateOCPPBatteryImpl{ - battery: battery, - }, - MeterEnergy: &decorateOCPPMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateOCPPPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseSwitcher: &decorateOCPPPhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - PhaseVoltages: &decorateOCPPPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case battery != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher != nil && phaseVoltages != nil: return &struct { *OCPP diff --git a/charger/pcelectric_decorators.go b/charger/pcelectric_decorators.go index fbab13ca77..541aac3419 100644 --- a/charger/pcelectric_decorators.go +++ b/charger/pcelectric_decorators.go @@ -8,7 +8,7 @@ import ( func decoratePCE(base *PCElectric, meter func() (float64, error), meterEnergy func() (float64, error), phaseCurrents func() (float64, float64, float64, error)) api.Charger { switch { - case meter == nil && meterEnergy == nil && phaseCurrents == nil: + case meter == nil: return base case meter != nil && meterEnergy == nil && phaseCurrents == nil: @@ -22,17 +22,6 @@ func decoratePCE(base *PCElectric, meter func() (float64, error), meterEnergy fu }, } - case meter == nil && meterEnergy != nil && phaseCurrents == nil: - return &struct { - *PCElectric - api.MeterEnergy - }{ - PCElectric: base, - MeterEnergy: &decoratePCEMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - case meter != nil && meterEnergy != nil && phaseCurrents == nil: return &struct { *PCElectric @@ -48,17 +37,6 @@ func decoratePCE(base *PCElectric, meter func() (float64, error), meterEnergy fu }, } - case meter == nil && meterEnergy == nil && phaseCurrents != nil: - return &struct { - *PCElectric - api.PhaseCurrents - }{ - PCElectric: base, - PhaseCurrents: &decoratePCEPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case meter != nil && meterEnergy == nil && phaseCurrents != nil: return &struct { *PCElectric @@ -74,21 +52,6 @@ func decoratePCE(base *PCElectric, meter func() (float64, error), meterEnergy fu }, } - case meter == nil && meterEnergy != nil && phaseCurrents != nil: - return &struct { - *PCElectric - api.MeterEnergy - api.PhaseCurrents - }{ - PCElectric: base, - MeterEnergy: &decoratePCEMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decoratePCEPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case meter != nil && meterEnergy != nil && phaseCurrents != nil: return &struct { *PCElectric diff --git a/charger/phoenix-charx_decorators.go b/charger/phoenix-charx_decorators.go index 90ed0d3f1d..33e5111934 100644 --- a/charger/phoenix-charx_decorators.go +++ b/charger/phoenix-charx_decorators.go @@ -8,7 +8,7 @@ import ( func decoratePhoenixCharx(base *PhoenixCharx, meter func() (float64, error), meterEnergy func() (float64, error), phaseCurrents func() (float64, float64, float64, error), phaseVoltages func() (float64, float64, float64, error)) api.Charger { switch { - case meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: + case meter == nil: return base case meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: @@ -22,17 +22,6 @@ func decoratePhoenixCharx(base *PhoenixCharx, meter func() (float64, error), met }, } - case meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *PhoenixCharx - api.MeterEnergy - }{ - PhoenixCharx: base, - MeterEnergy: &decoratePhoenixCharxMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - case meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { *PhoenixCharx @@ -48,17 +37,6 @@ func decoratePhoenixCharx(base *PhoenixCharx, meter func() (float64, error), met }, } - case meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *PhoenixCharx - api.PhaseCurrents - }{ - PhoenixCharx: base, - PhaseCurrents: &decoratePhoenixCharxPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: return &struct { *PhoenixCharx @@ -74,21 +52,6 @@ func decoratePhoenixCharx(base *PhoenixCharx, meter func() (float64, error), met }, } - case meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *PhoenixCharx - api.MeterEnergy - api.PhaseCurrents - }{ - PhoenixCharx: base, - MeterEnergy: &decoratePhoenixCharxMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decoratePhoenixCharxPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: return &struct { *PhoenixCharx @@ -108,17 +71,6 @@ func decoratePhoenixCharx(base *PhoenixCharx, meter func() (float64, error), met }, } - case meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *PhoenixCharx - api.PhaseVoltages - }{ - PhoenixCharx: base, - PhaseVoltages: &decoratePhoenixCharxPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { *PhoenixCharx @@ -134,21 +86,6 @@ func decoratePhoenixCharx(base *PhoenixCharx, meter func() (float64, error), met }, } - case meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *PhoenixCharx - api.MeterEnergy - api.PhaseVoltages - }{ - PhoenixCharx: base, - MeterEnergy: &decoratePhoenixCharxMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decoratePhoenixCharxPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { *PhoenixCharx @@ -168,21 +105,6 @@ func decoratePhoenixCharx(base *PhoenixCharx, meter func() (float64, error), met }, } - case meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *PhoenixCharx - api.PhaseCurrents - api.PhaseVoltages - }{ - PhoenixCharx: base, - PhaseCurrents: &decoratePhoenixCharxPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decoratePhoenixCharxPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: return &struct { *PhoenixCharx @@ -202,25 +124,6 @@ func decoratePhoenixCharx(base *PhoenixCharx, meter func() (float64, error), met }, } - case meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *PhoenixCharx - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - PhoenixCharx: base, - MeterEnergy: &decoratePhoenixCharxMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decoratePhoenixCharxPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decoratePhoenixCharxPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: return &struct { *PhoenixCharx diff --git a/charger/phoenix-em-eth_decorators.go b/charger/phoenix-em-eth_decorators.go index 5ceae47142..114db40746 100644 --- a/charger/phoenix-em-eth_decorators.go +++ b/charger/phoenix-em-eth_decorators.go @@ -8,7 +8,7 @@ import ( func decoratePhoenixEMEth(base *PhoenixEMEth, meter func() (float64, error), meterEnergy func() (float64, error), phaseCurrents func() (float64, float64, float64, error), phaseVoltages func() (float64, float64, float64, error)) api.Charger { switch { - case meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: + case meter == nil: return base case meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: @@ -22,17 +22,6 @@ func decoratePhoenixEMEth(base *PhoenixEMEth, meter func() (float64, error), met }, } - case meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *PhoenixEMEth - api.MeterEnergy - }{ - PhoenixEMEth: base, - MeterEnergy: &decoratePhoenixEMEthMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - case meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { *PhoenixEMEth @@ -48,17 +37,6 @@ func decoratePhoenixEMEth(base *PhoenixEMEth, meter func() (float64, error), met }, } - case meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *PhoenixEMEth - api.PhaseCurrents - }{ - PhoenixEMEth: base, - PhaseCurrents: &decoratePhoenixEMEthPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: return &struct { *PhoenixEMEth @@ -74,21 +52,6 @@ func decoratePhoenixEMEth(base *PhoenixEMEth, meter func() (float64, error), met }, } - case meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *PhoenixEMEth - api.MeterEnergy - api.PhaseCurrents - }{ - PhoenixEMEth: base, - MeterEnergy: &decoratePhoenixEMEthMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decoratePhoenixEMEthPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: return &struct { *PhoenixEMEth @@ -108,17 +71,6 @@ func decoratePhoenixEMEth(base *PhoenixEMEth, meter func() (float64, error), met }, } - case meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *PhoenixEMEth - api.PhaseVoltages - }{ - PhoenixEMEth: base, - PhaseVoltages: &decoratePhoenixEMEthPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { *PhoenixEMEth @@ -134,21 +86,6 @@ func decoratePhoenixEMEth(base *PhoenixEMEth, meter func() (float64, error), met }, } - case meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *PhoenixEMEth - api.MeterEnergy - api.PhaseVoltages - }{ - PhoenixEMEth: base, - MeterEnergy: &decoratePhoenixEMEthMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decoratePhoenixEMEthPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { *PhoenixEMEth @@ -168,21 +105,6 @@ func decoratePhoenixEMEth(base *PhoenixEMEth, meter func() (float64, error), met }, } - case meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *PhoenixEMEth - api.PhaseCurrents - api.PhaseVoltages - }{ - PhoenixEMEth: base, - PhaseCurrents: &decoratePhoenixEMEthPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decoratePhoenixEMEthPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: return &struct { *PhoenixEMEth @@ -202,25 +124,6 @@ func decoratePhoenixEMEth(base *PhoenixEMEth, meter func() (float64, error), met }, } - case meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *PhoenixEMEth - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - PhoenixEMEth: base, - MeterEnergy: &decoratePhoenixEMEthMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decoratePhoenixEMEthPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decoratePhoenixEMEthPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: return &struct { *PhoenixEMEth diff --git a/charger/phoenix-ev-eth_decorators.go b/charger/phoenix-ev-eth_decorators.go index 75b52d0af2..8c8bcf67f2 100644 --- a/charger/phoenix-ev-eth_decorators.go +++ b/charger/phoenix-ev-eth_decorators.go @@ -8,7 +8,7 @@ import ( func decoratePhoenixEVEth(base *PhoenixEVEth, meter func() (float64, error), meterEnergy func() (float64, error), phaseCurrents func() (float64, float64, float64, error), phaseVoltages func() (float64, float64, float64, error), chargerEx func(float64) error, identifier func() (string, error)) api.Charger { switch { - case chargerEx == nil && identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: + case chargerEx == nil && identifier == nil && meter == nil: return base case chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: @@ -22,17 +22,6 @@ func decoratePhoenixEVEth(base *PhoenixEVEth, meter func() (float64, error), met }, } - case chargerEx == nil && identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *PhoenixEVEth - api.MeterEnergy - }{ - PhoenixEVEth: base, - MeterEnergy: &decoratePhoenixEVEthMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - case chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { *PhoenixEVEth @@ -48,17 +37,6 @@ func decoratePhoenixEVEth(base *PhoenixEVEth, meter func() (float64, error), met }, } - case chargerEx == nil && identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *PhoenixEVEth - api.PhaseCurrents - }{ - PhoenixEVEth: base, - PhaseCurrents: &decoratePhoenixEVEthPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: return &struct { *PhoenixEVEth @@ -74,21 +52,6 @@ func decoratePhoenixEVEth(base *PhoenixEVEth, meter func() (float64, error), met }, } - case chargerEx == nil && identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *PhoenixEVEth - api.MeterEnergy - api.PhaseCurrents - }{ - PhoenixEVEth: base, - MeterEnergy: &decoratePhoenixEVEthMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decoratePhoenixEVEthPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: return &struct { *PhoenixEVEth @@ -108,17 +71,6 @@ func decoratePhoenixEVEth(base *PhoenixEVEth, meter func() (float64, error), met }, } - case chargerEx == nil && identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *PhoenixEVEth - api.PhaseVoltages - }{ - PhoenixEVEth: base, - PhaseVoltages: &decoratePhoenixEVEthPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { *PhoenixEVEth @@ -134,21 +86,6 @@ func decoratePhoenixEVEth(base *PhoenixEVEth, meter func() (float64, error), met }, } - case chargerEx == nil && identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *PhoenixEVEth - api.MeterEnergy - api.PhaseVoltages - }{ - PhoenixEVEth: base, - MeterEnergy: &decoratePhoenixEVEthMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decoratePhoenixEVEthPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { *PhoenixEVEth @@ -168,21 +105,6 @@ func decoratePhoenixEVEth(base *PhoenixEVEth, meter func() (float64, error), met }, } - case chargerEx == nil && identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *PhoenixEVEth - api.PhaseCurrents - api.PhaseVoltages - }{ - PhoenixEVEth: base, - PhaseCurrents: &decoratePhoenixEVEthPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decoratePhoenixEVEthPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case chargerEx == nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: return &struct { *PhoenixEVEth @@ -202,25 +124,6 @@ func decoratePhoenixEVEth(base *PhoenixEVEth, meter func() (float64, error), met }, } - case chargerEx == nil && identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *PhoenixEVEth - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - PhoenixEVEth: base, - MeterEnergy: &decoratePhoenixEVEthMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decoratePhoenixEVEthPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decoratePhoenixEVEthPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case chargerEx == nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: return &struct { *PhoenixEVEth @@ -244,7 +147,7 @@ func decoratePhoenixEVEth(base *PhoenixEVEth, meter func() (float64, error), met }, } - case chargerEx != nil && identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: + case chargerEx != nil && identifier == nil && meter == nil: return &struct { *PhoenixEVEth api.ChargerEx @@ -270,21 +173,6 @@ func decoratePhoenixEVEth(base *PhoenixEVEth, meter func() (float64, error), met }, } - case chargerEx != nil && identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *PhoenixEVEth - api.ChargerEx - api.MeterEnergy - }{ - PhoenixEVEth: base, - ChargerEx: &decoratePhoenixEVEthChargerExImpl{ - chargerEx: chargerEx, - }, - MeterEnergy: &decoratePhoenixEVEthMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - case chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { *PhoenixEVEth @@ -304,21 +192,6 @@ func decoratePhoenixEVEth(base *PhoenixEVEth, meter func() (float64, error), met }, } - case chargerEx != nil && identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *PhoenixEVEth - api.ChargerEx - api.PhaseCurrents - }{ - PhoenixEVEth: base, - ChargerEx: &decoratePhoenixEVEthChargerExImpl{ - chargerEx: chargerEx, - }, - PhaseCurrents: &decoratePhoenixEVEthPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: return &struct { *PhoenixEVEth @@ -338,25 +211,6 @@ func decoratePhoenixEVEth(base *PhoenixEVEth, meter func() (float64, error), met }, } - case chargerEx != nil && identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *PhoenixEVEth - api.ChargerEx - api.MeterEnergy - api.PhaseCurrents - }{ - PhoenixEVEth: base, - ChargerEx: &decoratePhoenixEVEthChargerExImpl{ - chargerEx: chargerEx, - }, - MeterEnergy: &decoratePhoenixEVEthMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decoratePhoenixEVEthPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: return &struct { *PhoenixEVEth @@ -380,21 +234,6 @@ func decoratePhoenixEVEth(base *PhoenixEVEth, meter func() (float64, error), met }, } - case chargerEx != nil && identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *PhoenixEVEth - api.ChargerEx - api.PhaseVoltages - }{ - PhoenixEVEth: base, - ChargerEx: &decoratePhoenixEVEthChargerExImpl{ - chargerEx: chargerEx, - }, - PhaseVoltages: &decoratePhoenixEVEthPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { *PhoenixEVEth @@ -414,25 +253,6 @@ func decoratePhoenixEVEth(base *PhoenixEVEth, meter func() (float64, error), met }, } - case chargerEx != nil && identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *PhoenixEVEth - api.ChargerEx - api.MeterEnergy - api.PhaseVoltages - }{ - PhoenixEVEth: base, - ChargerEx: &decoratePhoenixEVEthChargerExImpl{ - chargerEx: chargerEx, - }, - MeterEnergy: &decoratePhoenixEVEthMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decoratePhoenixEVEthPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { *PhoenixEVEth @@ -456,25 +276,6 @@ func decoratePhoenixEVEth(base *PhoenixEVEth, meter func() (float64, error), met }, } - case chargerEx != nil && identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *PhoenixEVEth - api.ChargerEx - api.PhaseCurrents - api.PhaseVoltages - }{ - PhoenixEVEth: base, - ChargerEx: &decoratePhoenixEVEthChargerExImpl{ - chargerEx: chargerEx, - }, - PhaseCurrents: &decoratePhoenixEVEthPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decoratePhoenixEVEthPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case chargerEx != nil && identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: return &struct { *PhoenixEVEth @@ -498,29 +299,6 @@ func decoratePhoenixEVEth(base *PhoenixEVEth, meter func() (float64, error), met }, } - case chargerEx != nil && identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *PhoenixEVEth - api.ChargerEx - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - PhoenixEVEth: base, - ChargerEx: &decoratePhoenixEVEthChargerExImpl{ - chargerEx: chargerEx, - }, - MeterEnergy: &decoratePhoenixEVEthMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decoratePhoenixEVEthPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decoratePhoenixEVEthPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case chargerEx != nil && identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: return &struct { *PhoenixEVEth @@ -548,7 +326,7 @@ func decoratePhoenixEVEth(base *PhoenixEVEth, meter func() (float64, error), met }, } - case chargerEx == nil && identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: + case chargerEx == nil && identifier != nil && meter == nil: return &struct { *PhoenixEVEth api.Identifier @@ -574,21 +352,6 @@ func decoratePhoenixEVEth(base *PhoenixEVEth, meter func() (float64, error), met }, } - case chargerEx == nil && identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *PhoenixEVEth - api.Identifier - api.MeterEnergy - }{ - PhoenixEVEth: base, - Identifier: &decoratePhoenixEVEthIdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decoratePhoenixEVEthMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - case chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { *PhoenixEVEth @@ -608,21 +371,6 @@ func decoratePhoenixEVEth(base *PhoenixEVEth, meter func() (float64, error), met }, } - case chargerEx == nil && identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *PhoenixEVEth - api.Identifier - api.PhaseCurrents - }{ - PhoenixEVEth: base, - Identifier: &decoratePhoenixEVEthIdentifierImpl{ - identifier: identifier, - }, - PhaseCurrents: &decoratePhoenixEVEthPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: return &struct { *PhoenixEVEth @@ -642,25 +390,6 @@ func decoratePhoenixEVEth(base *PhoenixEVEth, meter func() (float64, error), met }, } - case chargerEx == nil && identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *PhoenixEVEth - api.Identifier - api.MeterEnergy - api.PhaseCurrents - }{ - PhoenixEVEth: base, - Identifier: &decoratePhoenixEVEthIdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decoratePhoenixEVEthMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decoratePhoenixEVEthPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: return &struct { *PhoenixEVEth @@ -684,21 +413,6 @@ func decoratePhoenixEVEth(base *PhoenixEVEth, meter func() (float64, error), met }, } - case chargerEx == nil && identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *PhoenixEVEth - api.Identifier - api.PhaseVoltages - }{ - PhoenixEVEth: base, - Identifier: &decoratePhoenixEVEthIdentifierImpl{ - identifier: identifier, - }, - PhaseVoltages: &decoratePhoenixEVEthPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { *PhoenixEVEth @@ -718,25 +432,6 @@ func decoratePhoenixEVEth(base *PhoenixEVEth, meter func() (float64, error), met }, } - case chargerEx == nil && identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *PhoenixEVEth - api.Identifier - api.MeterEnergy - api.PhaseVoltages - }{ - PhoenixEVEth: base, - Identifier: &decoratePhoenixEVEthIdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decoratePhoenixEVEthMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decoratePhoenixEVEthPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { *PhoenixEVEth @@ -760,25 +455,6 @@ func decoratePhoenixEVEth(base *PhoenixEVEth, meter func() (float64, error), met }, } - case chargerEx == nil && identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *PhoenixEVEth - api.Identifier - api.PhaseCurrents - api.PhaseVoltages - }{ - PhoenixEVEth: base, - Identifier: &decoratePhoenixEVEthIdentifierImpl{ - identifier: identifier, - }, - PhaseCurrents: &decoratePhoenixEVEthPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decoratePhoenixEVEthPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case chargerEx == nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: return &struct { *PhoenixEVEth @@ -802,29 +478,6 @@ func decoratePhoenixEVEth(base *PhoenixEVEth, meter func() (float64, error), met }, } - case chargerEx == nil && identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *PhoenixEVEth - api.Identifier - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - PhoenixEVEth: base, - Identifier: &decoratePhoenixEVEthIdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decoratePhoenixEVEthMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decoratePhoenixEVEthPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decoratePhoenixEVEthPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case chargerEx == nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: return &struct { *PhoenixEVEth @@ -852,7 +505,7 @@ func decoratePhoenixEVEth(base *PhoenixEVEth, meter func() (float64, error), met }, } - case chargerEx != nil && identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: + case chargerEx != nil && identifier != nil && meter == nil: return &struct { *PhoenixEVEth api.ChargerEx @@ -886,25 +539,6 @@ func decoratePhoenixEVEth(base *PhoenixEVEth, meter func() (float64, error), met }, } - case chargerEx != nil && identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *PhoenixEVEth - api.ChargerEx - api.Identifier - api.MeterEnergy - }{ - PhoenixEVEth: base, - ChargerEx: &decoratePhoenixEVEthChargerExImpl{ - chargerEx: chargerEx, - }, - Identifier: &decoratePhoenixEVEthIdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decoratePhoenixEVEthMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - case chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { *PhoenixEVEth @@ -928,25 +562,6 @@ func decoratePhoenixEVEth(base *PhoenixEVEth, meter func() (float64, error), met }, } - case chargerEx != nil && identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *PhoenixEVEth - api.ChargerEx - api.Identifier - api.PhaseCurrents - }{ - PhoenixEVEth: base, - ChargerEx: &decoratePhoenixEVEthChargerExImpl{ - chargerEx: chargerEx, - }, - Identifier: &decoratePhoenixEVEthIdentifierImpl{ - identifier: identifier, - }, - PhaseCurrents: &decoratePhoenixEVEthPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: return &struct { *PhoenixEVEth @@ -970,29 +585,6 @@ func decoratePhoenixEVEth(base *PhoenixEVEth, meter func() (float64, error), met }, } - case chargerEx != nil && identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *PhoenixEVEth - api.ChargerEx - api.Identifier - api.MeterEnergy - api.PhaseCurrents - }{ - PhoenixEVEth: base, - ChargerEx: &decoratePhoenixEVEthChargerExImpl{ - chargerEx: chargerEx, - }, - Identifier: &decoratePhoenixEVEthIdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decoratePhoenixEVEthMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decoratePhoenixEVEthPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: return &struct { *PhoenixEVEth @@ -1020,25 +612,6 @@ func decoratePhoenixEVEth(base *PhoenixEVEth, meter func() (float64, error), met }, } - case chargerEx != nil && identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *PhoenixEVEth - api.ChargerEx - api.Identifier - api.PhaseVoltages - }{ - PhoenixEVEth: base, - ChargerEx: &decoratePhoenixEVEthChargerExImpl{ - chargerEx: chargerEx, - }, - Identifier: &decoratePhoenixEVEthIdentifierImpl{ - identifier: identifier, - }, - PhaseVoltages: &decoratePhoenixEVEthPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { *PhoenixEVEth @@ -1062,29 +635,6 @@ func decoratePhoenixEVEth(base *PhoenixEVEth, meter func() (float64, error), met }, } - case chargerEx != nil && identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *PhoenixEVEth - api.ChargerEx - api.Identifier - api.MeterEnergy - api.PhaseVoltages - }{ - PhoenixEVEth: base, - ChargerEx: &decoratePhoenixEVEthChargerExImpl{ - chargerEx: chargerEx, - }, - Identifier: &decoratePhoenixEVEthIdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decoratePhoenixEVEthMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decoratePhoenixEVEthPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { *PhoenixEVEth @@ -1112,29 +662,6 @@ func decoratePhoenixEVEth(base *PhoenixEVEth, meter func() (float64, error), met }, } - case chargerEx != nil && identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *PhoenixEVEth - api.ChargerEx - api.Identifier - api.PhaseCurrents - api.PhaseVoltages - }{ - PhoenixEVEth: base, - ChargerEx: &decoratePhoenixEVEthChargerExImpl{ - chargerEx: chargerEx, - }, - Identifier: &decoratePhoenixEVEthIdentifierImpl{ - identifier: identifier, - }, - PhaseCurrents: &decoratePhoenixEVEthPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decoratePhoenixEVEthPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case chargerEx != nil && identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: return &struct { *PhoenixEVEth @@ -1162,33 +689,6 @@ func decoratePhoenixEVEth(base *PhoenixEVEth, meter func() (float64, error), met }, } - case chargerEx != nil && identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *PhoenixEVEth - api.ChargerEx - api.Identifier - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - PhoenixEVEth: base, - ChargerEx: &decoratePhoenixEVEthChargerExImpl{ - chargerEx: chargerEx, - }, - Identifier: &decoratePhoenixEVEthIdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decoratePhoenixEVEthMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decoratePhoenixEVEthPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decoratePhoenixEVEthPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case chargerEx != nil && identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: return &struct { *PhoenixEVEth diff --git a/charger/wallbe_decorators.go b/charger/wallbe_decorators.go index b932c5dc46..81a9e8493f 100644 --- a/charger/wallbe_decorators.go +++ b/charger/wallbe_decorators.go @@ -8,7 +8,7 @@ import ( func decorateWallbe(base *Wallbe, meter func() (float64, error), meterEnergy func() (float64, error), phaseCurrents func() (float64, float64, float64, error), chargerEx func(float64) error) api.Charger { switch { - case chargerEx == nil && meter == nil && meterEnergy == nil && phaseCurrents == nil: + case chargerEx == nil && meter == nil: return base case chargerEx == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil: @@ -22,17 +22,6 @@ func decorateWallbe(base *Wallbe, meter func() (float64, error), meterEnergy fun }, } - case chargerEx == nil && meter == nil && meterEnergy != nil && phaseCurrents == nil: - return &struct { - *Wallbe - api.MeterEnergy - }{ - Wallbe: base, - MeterEnergy: &decorateWallbeMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - case chargerEx == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil: return &struct { *Wallbe @@ -48,17 +37,6 @@ func decorateWallbe(base *Wallbe, meter func() (float64, error), meterEnergy fun }, } - case chargerEx == nil && meter == nil && meterEnergy == nil && phaseCurrents != nil: - return &struct { - *Wallbe - api.PhaseCurrents - }{ - Wallbe: base, - PhaseCurrents: &decorateWallbePhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case chargerEx == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil: return &struct { *Wallbe @@ -74,21 +52,6 @@ func decorateWallbe(base *Wallbe, meter func() (float64, error), meterEnergy fun }, } - case chargerEx == nil && meter == nil && meterEnergy != nil && phaseCurrents != nil: - return &struct { - *Wallbe - api.MeterEnergy - api.PhaseCurrents - }{ - Wallbe: base, - MeterEnergy: &decorateWallbeMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateWallbePhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case chargerEx == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil: return &struct { *Wallbe @@ -108,7 +71,7 @@ func decorateWallbe(base *Wallbe, meter func() (float64, error), meterEnergy fun }, } - case chargerEx != nil && meter == nil && meterEnergy == nil && phaseCurrents == nil: + case chargerEx != nil && meter == nil: return &struct { *Wallbe api.ChargerEx @@ -134,21 +97,6 @@ func decorateWallbe(base *Wallbe, meter func() (float64, error), meterEnergy fun }, } - case chargerEx != nil && meter == nil && meterEnergy != nil && phaseCurrents == nil: - return &struct { - *Wallbe - api.ChargerEx - api.MeterEnergy - }{ - Wallbe: base, - ChargerEx: &decorateWallbeChargerExImpl{ - chargerEx: chargerEx, - }, - MeterEnergy: &decorateWallbeMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - case chargerEx != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil: return &struct { *Wallbe @@ -168,21 +116,6 @@ func decorateWallbe(base *Wallbe, meter func() (float64, error), meterEnergy fun }, } - case chargerEx != nil && meter == nil && meterEnergy == nil && phaseCurrents != nil: - return &struct { - *Wallbe - api.ChargerEx - api.PhaseCurrents - }{ - Wallbe: base, - ChargerEx: &decorateWallbeChargerExImpl{ - chargerEx: chargerEx, - }, - PhaseCurrents: &decorateWallbePhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case chargerEx != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil: return &struct { *Wallbe @@ -202,25 +135,6 @@ func decorateWallbe(base *Wallbe, meter func() (float64, error), meterEnergy fun }, } - case chargerEx != nil && meter == nil && meterEnergy != nil && phaseCurrents != nil: - return &struct { - *Wallbe - api.ChargerEx - api.MeterEnergy - api.PhaseCurrents - }{ - Wallbe: base, - ChargerEx: &decorateWallbeChargerExImpl{ - chargerEx: chargerEx, - }, - MeterEnergy: &decorateWallbeMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateWallbePhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - case chargerEx != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil: return &struct { *Wallbe diff --git a/charger/warp2_decorators.go b/charger/warp2_decorators.go index eb80a3b508..007663b925 100644 --- a/charger/warp2_decorators.go +++ b/charger/warp2_decorators.go @@ -8,10 +8,10 @@ import ( func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func() (float64, error), phaseCurrents func() (float64, float64, float64, error), phaseVoltages func() (float64, float64, float64, error), identifier func() (string, error), phaseSwitcher func(int) error, phaseGetter func() (int, error)) api.Charger { switch { - case identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher == nil && phaseVoltages == nil: + case identifier == nil && meter == nil && phaseSwitcher == nil: return base - case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher == nil && phaseVoltages == nil: + case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil: return &struct { *Warp2 api.Meter @@ -22,18 +22,7 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( }, } - case identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher == nil && phaseVoltages == nil: - return &struct { - *Warp2 - api.MeterEnergy - }{ - Warp2: base, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher == nil && phaseVoltages == nil: + case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil: return &struct { *Warp2 api.Meter @@ -48,18 +37,7 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( }, } - case identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher == nil && phaseVoltages == nil: - return &struct { - *Warp2 - api.PhaseCurrents - }{ - Warp2: base, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher == nil && phaseVoltages == nil: + case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil: return &struct { *Warp2 api.Meter @@ -74,22 +52,7 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( }, } - case identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher == nil && phaseVoltages == nil: - return &struct { - *Warp2 - api.MeterEnergy - api.PhaseCurrents - }{ - Warp2: base, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher == nil && phaseVoltages == nil: + case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil: return &struct { *Warp2 api.Meter @@ -108,18 +71,7 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( }, } - case identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher == nil && phaseVoltages != nil: - return &struct { - *Warp2 - api.PhaseVoltages - }{ - Warp2: base, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher == nil && phaseVoltages != nil: + case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil: return &struct { *Warp2 api.Meter @@ -134,22 +86,7 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( }, } - case identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher == nil && phaseVoltages != nil: - return &struct { - *Warp2 - api.MeterEnergy - api.PhaseVoltages - }{ - Warp2: base, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher == nil && phaseVoltages != nil: + case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil: return &struct { *Warp2 api.Meter @@ -168,22 +105,7 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( }, } - case identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher == nil && phaseVoltages != nil: - return &struct { - *Warp2 - api.PhaseCurrents - api.PhaseVoltages - }{ - Warp2: base, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher == nil && phaseVoltages != nil: + case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil: return &struct { *Warp2 api.Meter @@ -202,26 +124,7 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( }, } - case identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher == nil && phaseVoltages != nil: - return &struct { - *Warp2 - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - Warp2: base, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher == nil && phaseVoltages != nil: + case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil: return &struct { *Warp2 api.Meter @@ -244,7 +147,7 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( }, } - case identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher == nil && phaseVoltages == nil: + case identifier != nil && meter == nil && phaseSwitcher == nil: return &struct { *Warp2 api.Identifier @@ -255,7 +158,7 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( }, } - case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher == nil && phaseVoltages == nil: + case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil: return &struct { *Warp2 api.Identifier @@ -270,22 +173,7 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( }, } - case identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher == nil && phaseVoltages == nil: - return &struct { - *Warp2 - api.Identifier - api.MeterEnergy - }{ - Warp2: base, - Identifier: &decorateWarp2IdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher == nil && phaseVoltages == nil: + case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages == nil: return &struct { *Warp2 api.Identifier @@ -304,22 +192,7 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( }, } - case identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher == nil && phaseVoltages == nil: - return &struct { - *Warp2 - api.Identifier - api.PhaseCurrents - }{ - Warp2: base, - Identifier: &decorateWarp2IdentifierImpl{ - identifier: identifier, - }, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher == nil && phaseVoltages == nil: + case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil: return &struct { *Warp2 api.Identifier @@ -338,26 +211,7 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( }, } - case identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher == nil && phaseVoltages == nil: - return &struct { - *Warp2 - api.Identifier - api.MeterEnergy - api.PhaseCurrents - }{ - Warp2: base, - Identifier: &decorateWarp2IdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher == nil && phaseVoltages == nil: + case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages == nil: return &struct { *Warp2 api.Identifier @@ -380,22 +234,7 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( }, } - case identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher == nil && phaseVoltages != nil: - return &struct { - *Warp2 - api.Identifier - api.PhaseVoltages - }{ - Warp2: base, - Identifier: &decorateWarp2IdentifierImpl{ - identifier: identifier, - }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher == nil && phaseVoltages != nil: + case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil: return &struct { *Warp2 api.Identifier @@ -414,26 +253,7 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( }, } - case identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher == nil && phaseVoltages != nil: - return &struct { - *Warp2 - api.Identifier - api.MeterEnergy - api.PhaseVoltages - }{ - Warp2: base, - Identifier: &decorateWarp2IdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher == nil && phaseVoltages != nil: + case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseSwitcher == nil && phaseVoltages != nil: return &struct { *Warp2 api.Identifier @@ -456,26 +276,7 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( }, } - case identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher == nil && phaseVoltages != nil: - return &struct { - *Warp2 - api.Identifier - api.PhaseCurrents - api.PhaseVoltages - }{ - Warp2: base, - Identifier: &decorateWarp2IdentifierImpl{ - identifier: identifier, - }, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher == nil && phaseVoltages != nil: + case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil: return &struct { *Warp2 api.Identifier @@ -498,30 +299,7 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( }, } - case identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher == nil && phaseVoltages != nil: - return &struct { - *Warp2 - api.Identifier - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - Warp2: base, - Identifier: &decorateWarp2IdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher == nil && phaseVoltages != nil: + case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseSwitcher == nil && phaseVoltages != nil: return &struct { *Warp2 api.Identifier @@ -548,7 +326,7 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( }, } - case identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages == nil: + case identifier == nil && meter == nil && phaseGetter == nil && phaseSwitcher != nil: return &struct { *Warp2 api.PhaseSwitcher @@ -574,21 +352,6 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( }, } - case identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages == nil: - return &struct { - *Warp2 - api.MeterEnergy - api.PhaseSwitcher - }{ - Warp2: base, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - } - case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages == nil: return &struct { *Warp2 @@ -608,13 +371,17 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( }, } - case identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages == nil: + case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages == nil: return &struct { *Warp2 + api.Meter api.PhaseCurrents api.PhaseSwitcher }{ Warp2: base, + Meter: &decorateWarp2MeterImpl{ + meter: meter, + }, PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, @@ -623,10 +390,11 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( }, } - case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages == nil: + case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages == nil: return &struct { *Warp2 api.Meter + api.MeterEnergy api.PhaseCurrents api.PhaseSwitcher }{ @@ -634,6 +402,9 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( Meter: &decorateWarp2MeterImpl{ meter: meter, }, + MeterEnergy: &decorateWarp2MeterEnergyImpl{ + meterEnergy: meterEnergy, + }, PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, @@ -642,32 +413,32 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( }, } - case identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages == nil: + case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages != nil: return &struct { *Warp2 - api.MeterEnergy - api.PhaseCurrents + api.Meter api.PhaseSwitcher + api.PhaseVoltages }{ Warp2: base, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, + Meter: &decorateWarp2MeterImpl{ + meter: meter, }, PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ phaseSwitcher: phaseSwitcher, }, + PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, } - case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages == nil: + case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages != nil: return &struct { *Warp2 api.Meter api.MeterEnergy - api.PhaseCurrents api.PhaseSwitcher + api.PhaseVoltages }{ Warp2: base, Meter: &decorateWarp2MeterImpl{ @@ -676,101 +447,6 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( MeterEnergy: &decorateWarp2MeterEnergyImpl{ meterEnergy: meterEnergy, }, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - } - - case identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages != nil: - return &struct { - *Warp2 - api.PhaseSwitcher - api.PhaseVoltages - }{ - Warp2: base, - PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages != nil: - return &struct { - *Warp2 - api.Meter - api.PhaseSwitcher - api.PhaseVoltages - }{ - Warp2: base, - Meter: &decorateWarp2MeterImpl{ - meter: meter, - }, - PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages != nil: - return &struct { - *Warp2 - api.MeterEnergy - api.PhaseSwitcher - api.PhaseVoltages - }{ - Warp2: base, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages != nil: - return &struct { - *Warp2 - api.Meter - api.MeterEnergy - api.PhaseSwitcher - api.PhaseVoltages - }{ - Warp2: base, - Meter: &decorateWarp2MeterImpl{ - meter: meter, - }, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages != nil: - return &struct { - *Warp2 - api.PhaseCurrents - api.PhaseSwitcher - api.PhaseVoltages - }{ - Warp2: base, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ phaseSwitcher: phaseSwitcher, }, @@ -802,29 +478,6 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( }, } - case identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages != nil: - return &struct { - *Warp2 - api.MeterEnergy - api.PhaseCurrents - api.PhaseSwitcher - api.PhaseVoltages - }{ - Warp2: base, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages != nil: return &struct { *Warp2 @@ -852,7 +505,7 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( }, } - case identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages == nil: + case identifier != nil && meter == nil && phaseGetter == nil && phaseSwitcher != nil: return &struct { *Warp2 api.Identifier @@ -886,25 +539,6 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( }, } - case identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages == nil: - return &struct { - *Warp2 - api.Identifier - api.MeterEnergy - api.PhaseSwitcher - }{ - Warp2: base, - Identifier: &decorateWarp2IdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - } - case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages == nil: return &struct { *Warp2 @@ -928,25 +562,6 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( }, } - case identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages == nil: - return &struct { - *Warp2 - api.Identifier - api.PhaseCurrents - api.PhaseSwitcher - }{ - Warp2: base, - Identifier: &decorateWarp2IdentifierImpl{ - identifier: identifier, - }, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - } - case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages == nil: return &struct { *Warp2 @@ -970,1152 +585,47 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( }, } - case identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages == nil: - return &struct { - *Warp2 - api.Identifier - api.MeterEnergy - api.PhaseCurrents - api.PhaseSwitcher - }{ - Warp2: base, - Identifier: &decorateWarp2IdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - } - case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages == nil: return &struct { *Warp2 api.Identifier api.Meter - api.MeterEnergy - api.PhaseCurrents - api.PhaseSwitcher - }{ - Warp2: base, - Identifier: &decorateWarp2IdentifierImpl{ - identifier: identifier, - }, - Meter: &decorateWarp2MeterImpl{ - meter: meter, - }, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - } - - case identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages != nil: - return &struct { - *Warp2 - api.Identifier - api.PhaseSwitcher - api.PhaseVoltages - }{ - Warp2: base, - Identifier: &decorateWarp2IdentifierImpl{ - identifier: identifier, - }, - PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages != nil: - return &struct { - *Warp2 - api.Identifier - api.Meter - api.PhaseSwitcher - api.PhaseVoltages - }{ - Warp2: base, - Identifier: &decorateWarp2IdentifierImpl{ - identifier: identifier, - }, - Meter: &decorateWarp2MeterImpl{ - meter: meter, - }, - PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages != nil: - return &struct { - *Warp2 - api.Identifier - api.MeterEnergy - api.PhaseSwitcher - api.PhaseVoltages - }{ - Warp2: base, - Identifier: &decorateWarp2IdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages != nil: - return &struct { - *Warp2 - api.Identifier - api.Meter - api.MeterEnergy - api.PhaseSwitcher - api.PhaseVoltages - }{ - Warp2: base, - Identifier: &decorateWarp2IdentifierImpl{ - identifier: identifier, - }, - Meter: &decorateWarp2MeterImpl{ - meter: meter, - }, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages != nil: - return &struct { - *Warp2 - api.Identifier - api.PhaseCurrents - api.PhaseSwitcher - api.PhaseVoltages - }{ - Warp2: base, - Identifier: &decorateWarp2IdentifierImpl{ - identifier: identifier, - }, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages != nil: - return &struct { - *Warp2 - api.Identifier - api.Meter - api.PhaseCurrents - api.PhaseSwitcher - api.PhaseVoltages - }{ - Warp2: base, - Identifier: &decorateWarp2IdentifierImpl{ - identifier: identifier, - }, - Meter: &decorateWarp2MeterImpl{ - meter: meter, - }, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages != nil: - return &struct { - *Warp2 - api.Identifier - api.MeterEnergy - api.PhaseCurrents - api.PhaseSwitcher - api.PhaseVoltages - }{ - Warp2: base, - Identifier: &decorateWarp2IdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages != nil: - return &struct { - *Warp2 - api.Identifier - api.Meter - api.MeterEnergy - api.PhaseCurrents - api.PhaseSwitcher - api.PhaseVoltages - }{ - Warp2: base, - Identifier: &decorateWarp2IdentifierImpl{ - identifier: identifier, - }, - Meter: &decorateWarp2MeterImpl{ - meter: meter, - }, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher == nil && phaseVoltages == nil: - return &struct { - *Warp2 - api.PhaseGetter - }{ - Warp2: base, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - } - - case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher == nil && phaseVoltages == nil: - return &struct { - *Warp2 - api.Meter - api.PhaseGetter - }{ - Warp2: base, - Meter: &decorateWarp2MeterImpl{ - meter: meter, - }, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - } - - case identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher == nil && phaseVoltages == nil: - return &struct { - *Warp2 - api.MeterEnergy - api.PhaseGetter - }{ - Warp2: base, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - } - - case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher == nil && phaseVoltages == nil: - return &struct { - *Warp2 - api.Meter - api.MeterEnergy - api.PhaseGetter - }{ - Warp2: base, - Meter: &decorateWarp2MeterImpl{ - meter: meter, - }, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - } - - case identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher == nil && phaseVoltages == nil: - return &struct { - *Warp2 - api.PhaseCurrents - api.PhaseGetter - }{ - Warp2: base, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - } - - case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher == nil && phaseVoltages == nil: - return &struct { - *Warp2 - api.Meter - api.PhaseCurrents - api.PhaseGetter - }{ - Warp2: base, - Meter: &decorateWarp2MeterImpl{ - meter: meter, - }, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - } - - case identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher == nil && phaseVoltages == nil: - return &struct { - *Warp2 - api.MeterEnergy - api.PhaseCurrents - api.PhaseGetter - }{ - Warp2: base, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - } - - case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher == nil && phaseVoltages == nil: - return &struct { - *Warp2 - api.Meter - api.MeterEnergy - api.PhaseCurrents - api.PhaseGetter - }{ - Warp2: base, - Meter: &decorateWarp2MeterImpl{ - meter: meter, - }, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - } - - case identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher == nil && phaseVoltages != nil: - return &struct { - *Warp2 - api.PhaseGetter - api.PhaseVoltages - }{ - Warp2: base, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher == nil && phaseVoltages != nil: - return &struct { - *Warp2 - api.Meter - api.PhaseGetter - api.PhaseVoltages - }{ - Warp2: base, - Meter: &decorateWarp2MeterImpl{ - meter: meter, - }, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher == nil && phaseVoltages != nil: - return &struct { - *Warp2 - api.MeterEnergy - api.PhaseGetter - api.PhaseVoltages - }{ - Warp2: base, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher == nil && phaseVoltages != nil: - return &struct { - *Warp2 - api.Meter - api.MeterEnergy - api.PhaseGetter - api.PhaseVoltages - }{ - Warp2: base, - Meter: &decorateWarp2MeterImpl{ - meter: meter, - }, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher == nil && phaseVoltages != nil: - return &struct { - *Warp2 - api.PhaseCurrents - api.PhaseGetter - api.PhaseVoltages - }{ - Warp2: base, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher == nil && phaseVoltages != nil: - return &struct { - *Warp2 - api.Meter - api.PhaseCurrents - api.PhaseGetter - api.PhaseVoltages - }{ - Warp2: base, - Meter: &decorateWarp2MeterImpl{ - meter: meter, - }, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher == nil && phaseVoltages != nil: - return &struct { - *Warp2 - api.MeterEnergy - api.PhaseCurrents - api.PhaseGetter - api.PhaseVoltages - }{ - Warp2: base, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher == nil && phaseVoltages != nil: - return &struct { - *Warp2 - api.Meter - api.MeterEnergy - api.PhaseCurrents - api.PhaseGetter - api.PhaseVoltages - }{ - Warp2: base, - Meter: &decorateWarp2MeterImpl{ - meter: meter, - }, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher == nil && phaseVoltages == nil: - return &struct { - *Warp2 - api.Identifier - api.PhaseGetter - }{ - Warp2: base, - Identifier: &decorateWarp2IdentifierImpl{ - identifier: identifier, - }, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - } - - case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher == nil && phaseVoltages == nil: - return &struct { - *Warp2 - api.Identifier - api.Meter - api.PhaseGetter - }{ - Warp2: base, - Identifier: &decorateWarp2IdentifierImpl{ - identifier: identifier, - }, - Meter: &decorateWarp2MeterImpl{ - meter: meter, - }, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - } - - case identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher == nil && phaseVoltages == nil: - return &struct { - *Warp2 - api.Identifier - api.MeterEnergy - api.PhaseGetter - }{ - Warp2: base, - Identifier: &decorateWarp2IdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - } - - case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher == nil && phaseVoltages == nil: - return &struct { - *Warp2 - api.Identifier - api.Meter - api.MeterEnergy - api.PhaseGetter - }{ - Warp2: base, - Identifier: &decorateWarp2IdentifierImpl{ - identifier: identifier, - }, - Meter: &decorateWarp2MeterImpl{ - meter: meter, - }, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - } - - case identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher == nil && phaseVoltages == nil: - return &struct { - *Warp2 - api.Identifier - api.PhaseCurrents - api.PhaseGetter - }{ - Warp2: base, - Identifier: &decorateWarp2IdentifierImpl{ - identifier: identifier, - }, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - } - - case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher == nil && phaseVoltages == nil: - return &struct { - *Warp2 - api.Identifier - api.Meter - api.PhaseCurrents - api.PhaseGetter - }{ - Warp2: base, - Identifier: &decorateWarp2IdentifierImpl{ - identifier: identifier, - }, - Meter: &decorateWarp2MeterImpl{ - meter: meter, - }, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - } - - case identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher == nil && phaseVoltages == nil: - return &struct { - *Warp2 - api.Identifier - api.MeterEnergy - api.PhaseCurrents - api.PhaseGetter - }{ - Warp2: base, - Identifier: &decorateWarp2IdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - } - - case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher == nil && phaseVoltages == nil: - return &struct { - *Warp2 - api.Identifier - api.Meter - api.MeterEnergy - api.PhaseCurrents - api.PhaseGetter - }{ - Warp2: base, - Identifier: &decorateWarp2IdentifierImpl{ - identifier: identifier, - }, - Meter: &decorateWarp2MeterImpl{ - meter: meter, - }, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - } - - case identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher == nil && phaseVoltages != nil: - return &struct { - *Warp2 - api.Identifier - api.PhaseGetter - api.PhaseVoltages - }{ - Warp2: base, - Identifier: &decorateWarp2IdentifierImpl{ - identifier: identifier, - }, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher == nil && phaseVoltages != nil: - return &struct { - *Warp2 - api.Identifier - api.Meter - api.PhaseGetter - api.PhaseVoltages - }{ - Warp2: base, - Identifier: &decorateWarp2IdentifierImpl{ - identifier: identifier, - }, - Meter: &decorateWarp2MeterImpl{ - meter: meter, - }, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher == nil && phaseVoltages != nil: - return &struct { - *Warp2 - api.Identifier - api.MeterEnergy - api.PhaseGetter - api.PhaseVoltages - }{ - Warp2: base, - Identifier: &decorateWarp2IdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher == nil && phaseVoltages != nil: - return &struct { - *Warp2 - api.Identifier - api.Meter - api.MeterEnergy - api.PhaseGetter - api.PhaseVoltages - }{ - Warp2: base, - Identifier: &decorateWarp2IdentifierImpl{ - identifier: identifier, - }, - Meter: &decorateWarp2MeterImpl{ - meter: meter, - }, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher == nil && phaseVoltages != nil: - return &struct { - *Warp2 - api.Identifier - api.PhaseCurrents - api.PhaseGetter - api.PhaseVoltages - }{ - Warp2: base, - Identifier: &decorateWarp2IdentifierImpl{ - identifier: identifier, - }, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher == nil && phaseVoltages != nil: - return &struct { - *Warp2 - api.Identifier - api.Meter - api.PhaseCurrents - api.PhaseGetter - api.PhaseVoltages - }{ - Warp2: base, - Identifier: &decorateWarp2IdentifierImpl{ - identifier: identifier, - }, - Meter: &decorateWarp2MeterImpl{ - meter: meter, - }, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher == nil && phaseVoltages != nil: - return &struct { - *Warp2 - api.Identifier - api.MeterEnergy - api.PhaseCurrents - api.PhaseGetter - api.PhaseVoltages - }{ - Warp2: base, - Identifier: &decorateWarp2IdentifierImpl{ - identifier: identifier, - }, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher == nil && phaseVoltages != nil: - return &struct { - *Warp2 - api.Identifier - api.Meter - api.MeterEnergy - api.PhaseCurrents - api.PhaseGetter - api.PhaseVoltages - }{ - Warp2: base, - Identifier: &decorateWarp2IdentifierImpl{ - identifier: identifier, - }, - Meter: &decorateWarp2MeterImpl{ - meter: meter, - }, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages == nil: - return &struct { - *Warp2 - api.PhaseGetter - api.PhaseSwitcher - }{ - Warp2: base, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - } - - case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages == nil: - return &struct { - *Warp2 - api.Meter - api.PhaseGetter - api.PhaseSwitcher - }{ - Warp2: base, - Meter: &decorateWarp2MeterImpl{ - meter: meter, - }, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - } - - case identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages == nil: - return &struct { - *Warp2 - api.MeterEnergy - api.PhaseGetter - api.PhaseSwitcher - }{ - Warp2: base, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - } - - case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages == nil: - return &struct { - *Warp2 - api.Meter - api.MeterEnergy - api.PhaseGetter - api.PhaseSwitcher - }{ - Warp2: base, - Meter: &decorateWarp2MeterImpl{ - meter: meter, - }, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - } - - case identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages == nil: - return &struct { - *Warp2 - api.PhaseCurrents - api.PhaseGetter - api.PhaseSwitcher - }{ - Warp2: base, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - } - - case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages == nil: - return &struct { - *Warp2 - api.Meter - api.PhaseCurrents - api.PhaseGetter - api.PhaseSwitcher - }{ - Warp2: base, - Meter: &decorateWarp2MeterImpl{ - meter: meter, - }, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - } - - case identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages == nil: - return &struct { - *Warp2 - api.MeterEnergy - api.PhaseCurrents - api.PhaseGetter - api.PhaseSwitcher - }{ - Warp2: base, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - } - - case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages == nil: - return &struct { - *Warp2 - api.Meter - api.MeterEnergy - api.PhaseCurrents - api.PhaseGetter - api.PhaseSwitcher - }{ - Warp2: base, - Meter: &decorateWarp2MeterImpl{ - meter: meter, - }, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - } - - case identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages != nil: - return &struct { - *Warp2 - api.PhaseGetter - api.PhaseSwitcher - api.PhaseVoltages - }{ - Warp2: base, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, - PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ - phaseSwitcher: phaseSwitcher, - }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages != nil: - return &struct { - *Warp2 - api.Meter - api.PhaseGetter + api.MeterEnergy + api.PhaseCurrents api.PhaseSwitcher - api.PhaseVoltages }{ Warp2: base, + Identifier: &decorateWarp2IdentifierImpl{ + identifier: identifier, + }, Meter: &decorateWarp2MeterImpl{ meter: meter, }, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, + MeterEnergy: &decorateWarp2MeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, }, PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ phaseSwitcher: phaseSwitcher, }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, } - case identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages != nil: + case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages != nil: return &struct { *Warp2 - api.MeterEnergy - api.PhaseGetter + api.Identifier + api.Meter api.PhaseSwitcher api.PhaseVoltages }{ Warp2: base, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, + Identifier: &decorateWarp2IdentifierImpl{ + identifier: identifier, }, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, + Meter: &decorateWarp2MeterImpl{ + meter: meter, }, PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ phaseSwitcher: phaseSwitcher, @@ -2125,25 +635,25 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( }, } - case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages != nil: + case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages != nil: return &struct { *Warp2 + api.Identifier api.Meter api.MeterEnergy - api.PhaseGetter api.PhaseSwitcher api.PhaseVoltages }{ Warp2: base, + Identifier: &decorateWarp2IdentifierImpl{ + identifier: identifier, + }, Meter: &decorateWarp2MeterImpl{ meter: meter, }, MeterEnergy: &decorateWarp2MeterEnergyImpl{ meterEnergy: meterEnergy, }, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ phaseSwitcher: phaseSwitcher, }, @@ -2152,21 +662,25 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( }, } - case identifier == nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages != nil: + case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages != nil: return &struct { *Warp2 + api.Identifier + api.Meter api.PhaseCurrents - api.PhaseGetter api.PhaseSwitcher api.PhaseVoltages }{ Warp2: base, + Identifier: &decorateWarp2IdentifierImpl{ + identifier: identifier, + }, + Meter: &decorateWarp2MeterImpl{ + meter: meter, + }, PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ phaseSwitcher: phaseSwitcher, }, @@ -2175,25 +689,29 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( }, } - case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages != nil: + case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter == nil && phaseSwitcher != nil && phaseVoltages != nil: return &struct { *Warp2 + api.Identifier api.Meter + api.MeterEnergy api.PhaseCurrents - api.PhaseGetter api.PhaseSwitcher api.PhaseVoltages }{ Warp2: base, + Identifier: &decorateWarp2IdentifierImpl{ + identifier: identifier, + }, Meter: &decorateWarp2MeterImpl{ meter: meter, }, + MeterEnergy: &decorateWarp2MeterEnergyImpl{ + meterEnergy: meterEnergy, + }, PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, - PhaseGetter: &decorateWarp2PhaseGetterImpl{ - phaseGetter: phaseGetter, - }, PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ phaseSwitcher: phaseSwitcher, }, @@ -2202,74 +720,54 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( }, } - case identifier == nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages != nil: + case identifier == nil && meter == nil && phaseGetter != nil && phaseSwitcher != nil: return &struct { *Warp2 - api.MeterEnergy - api.PhaseCurrents api.PhaseGetter api.PhaseSwitcher - api.PhaseVoltages }{ Warp2: base, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, PhaseGetter: &decorateWarp2PhaseGetterImpl{ phaseGetter: phaseGetter, }, PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ phaseSwitcher: phaseSwitcher, }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, } - case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages != nil: + case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages == nil: return &struct { *Warp2 api.Meter - api.MeterEnergy - api.PhaseCurrents api.PhaseGetter api.PhaseSwitcher - api.PhaseVoltages }{ Warp2: base, Meter: &decorateWarp2MeterImpl{ meter: meter, }, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, PhaseGetter: &decorateWarp2PhaseGetterImpl{ phaseGetter: phaseGetter, }, PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ phaseSwitcher: phaseSwitcher, }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, } - case identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages == nil: + case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages == nil: return &struct { *Warp2 - api.Identifier + api.Meter + api.MeterEnergy api.PhaseGetter api.PhaseSwitcher }{ Warp2: base, - Identifier: &decorateWarp2IdentifierImpl{ - identifier: identifier, + Meter: &decorateWarp2MeterImpl{ + meter: meter, + }, + MeterEnergy: &decorateWarp2MeterEnergyImpl{ + meterEnergy: meterEnergy, }, PhaseGetter: &decorateWarp2PhaseGetterImpl{ phaseGetter: phaseGetter, @@ -2279,21 +777,21 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( }, } - case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages == nil: + case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages == nil: return &struct { *Warp2 - api.Identifier api.Meter + api.PhaseCurrents api.PhaseGetter api.PhaseSwitcher }{ Warp2: base, - Identifier: &decorateWarp2IdentifierImpl{ - identifier: identifier, - }, Meter: &decorateWarp2MeterImpl{ meter: meter, }, + PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, PhaseGetter: &decorateWarp2PhaseGetterImpl{ phaseGetter: phaseGetter, }, @@ -2302,21 +800,25 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( }, } - case identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages == nil: + case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages == nil: return &struct { *Warp2 - api.Identifier + api.Meter api.MeterEnergy + api.PhaseCurrents api.PhaseGetter api.PhaseSwitcher }{ Warp2: base, - Identifier: &decorateWarp2IdentifierImpl{ - identifier: identifier, + Meter: &decorateWarp2MeterImpl{ + meter: meter, }, MeterEnergy: &decorateWarp2MeterEnergyImpl{ meterEnergy: meterEnergy, }, + PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, PhaseGetter: &decorateWarp2PhaseGetterImpl{ phaseGetter: phaseGetter, }, @@ -2325,47 +827,44 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( }, } - case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages == nil: + case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages != nil: return &struct { *Warp2 - api.Identifier api.Meter - api.MeterEnergy api.PhaseGetter api.PhaseSwitcher + api.PhaseVoltages }{ Warp2: base, - Identifier: &decorateWarp2IdentifierImpl{ - identifier: identifier, - }, Meter: &decorateWarp2MeterImpl{ meter: meter, }, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, PhaseGetter: &decorateWarp2PhaseGetterImpl{ phaseGetter: phaseGetter, }, PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ phaseSwitcher: phaseSwitcher, }, + PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, } - case identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages == nil: + case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages != nil: return &struct { *Warp2 - api.Identifier - api.PhaseCurrents + api.Meter + api.MeterEnergy api.PhaseGetter api.PhaseSwitcher + api.PhaseVoltages }{ Warp2: base, - Identifier: &decorateWarp2IdentifierImpl{ - identifier: identifier, + Meter: &decorateWarp2MeterImpl{ + meter: meter, }, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, + MeterEnergy: &decorateWarp2MeterEnergyImpl{ + meterEnergy: meterEnergy, }, PhaseGetter: &decorateWarp2PhaseGetterImpl{ phaseGetter: phaseGetter, @@ -2373,21 +872,21 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ phaseSwitcher: phaseSwitcher, }, + PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, } - case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages == nil: + case identifier == nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages != nil: return &struct { *Warp2 - api.Identifier api.Meter api.PhaseCurrents api.PhaseGetter api.PhaseSwitcher + api.PhaseVoltages }{ Warp2: base, - Identifier: &decorateWarp2IdentifierImpl{ - identifier: identifier, - }, Meter: &decorateWarp2MeterImpl{ meter: meter, }, @@ -2400,20 +899,24 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ phaseSwitcher: phaseSwitcher, }, + PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, } - case identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages == nil: + case identifier == nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages != nil: return &struct { *Warp2 - api.Identifier + api.Meter api.MeterEnergy api.PhaseCurrents api.PhaseGetter api.PhaseSwitcher + api.PhaseVoltages }{ Warp2: base, - Identifier: &decorateWarp2IdentifierImpl{ - identifier: identifier, + Meter: &decorateWarp2MeterImpl{ + meter: meter, }, MeterEnergy: &decorateWarp2MeterEnergyImpl{ meterEnergy: meterEnergy, @@ -2427,15 +930,15 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ phaseSwitcher: phaseSwitcher, }, + PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, } - case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages == nil: + case identifier != nil && meter == nil && phaseGetter != nil && phaseSwitcher != nil: return &struct { *Warp2 api.Identifier - api.Meter - api.MeterEnergy - api.PhaseCurrents api.PhaseGetter api.PhaseSwitcher }{ @@ -2443,15 +946,6 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( Identifier: &decorateWarp2IdentifierImpl{ identifier: identifier, }, - Meter: &decorateWarp2MeterImpl{ - meter: meter, - }, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, PhaseGetter: &decorateWarp2PhaseGetterImpl{ phaseGetter: phaseGetter, }, @@ -2460,37 +954,37 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( }, } - case identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages != nil: + case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages == nil: return &struct { *Warp2 api.Identifier + api.Meter api.PhaseGetter api.PhaseSwitcher - api.PhaseVoltages }{ Warp2: base, Identifier: &decorateWarp2IdentifierImpl{ identifier: identifier, }, + Meter: &decorateWarp2MeterImpl{ + meter: meter, + }, PhaseGetter: &decorateWarp2PhaseGetterImpl{ phaseGetter: phaseGetter, }, PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ phaseSwitcher: phaseSwitcher, }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, } - case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages != nil: + case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages == nil: return &struct { *Warp2 api.Identifier api.Meter + api.MeterEnergy api.PhaseGetter api.PhaseSwitcher - api.PhaseVoltages }{ Warp2: base, Identifier: &decorateWarp2IdentifierImpl{ @@ -2499,32 +993,35 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( Meter: &decorateWarp2MeterImpl{ meter: meter, }, + MeterEnergy: &decorateWarp2MeterEnergyImpl{ + meterEnergy: meterEnergy, + }, PhaseGetter: &decorateWarp2PhaseGetterImpl{ phaseGetter: phaseGetter, }, PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ phaseSwitcher: phaseSwitcher, }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, } - case identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages != nil: + case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages == nil: return &struct { *Warp2 api.Identifier - api.MeterEnergy + api.Meter + api.PhaseCurrents api.PhaseGetter api.PhaseSwitcher - api.PhaseVoltages }{ Warp2: base, Identifier: &decorateWarp2IdentifierImpl{ identifier: identifier, }, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, + Meter: &decorateWarp2MeterImpl{ + meter: meter, + }, + PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, }, PhaseGetter: &decorateWarp2PhaseGetterImpl{ phaseGetter: phaseGetter, @@ -2532,20 +1029,17 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ phaseSwitcher: phaseSwitcher, }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, } - case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages != nil: + case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages == nil: return &struct { *Warp2 api.Identifier api.Meter api.MeterEnergy + api.PhaseCurrents api.PhaseGetter api.PhaseSwitcher - api.PhaseVoltages }{ Warp2: base, Identifier: &decorateWarp2IdentifierImpl{ @@ -2557,22 +1051,22 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( MeterEnergy: &decorateWarp2MeterEnergyImpl{ meterEnergy: meterEnergy, }, + PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, PhaseGetter: &decorateWarp2PhaseGetterImpl{ phaseGetter: phaseGetter, }, PhaseSwitcher: &decorateWarp2PhaseSwitcherImpl{ phaseSwitcher: phaseSwitcher, }, - PhaseVoltages: &decorateWarp2PhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, } - case identifier != nil && meter == nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages != nil: + case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages != nil: return &struct { *Warp2 api.Identifier - api.PhaseCurrents + api.Meter api.PhaseGetter api.PhaseSwitcher api.PhaseVoltages @@ -2581,8 +1075,8 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( Identifier: &decorateWarp2IdentifierImpl{ identifier: identifier, }, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, + Meter: &decorateWarp2MeterImpl{ + meter: meter, }, PhaseGetter: &decorateWarp2PhaseGetterImpl{ phaseGetter: phaseGetter, @@ -2595,12 +1089,12 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( }, } - case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages != nil: + case identifier != nil && meter != nil && meterEnergy != nil && phaseCurrents == nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages != nil: return &struct { *Warp2 api.Identifier api.Meter - api.PhaseCurrents + api.MeterEnergy api.PhaseGetter api.PhaseSwitcher api.PhaseVoltages @@ -2612,8 +1106,8 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( Meter: &decorateWarp2MeterImpl{ meter: meter, }, - PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, + MeterEnergy: &decorateWarp2MeterEnergyImpl{ + meterEnergy: meterEnergy, }, PhaseGetter: &decorateWarp2PhaseGetterImpl{ phaseGetter: phaseGetter, @@ -2626,11 +1120,11 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( }, } - case identifier != nil && meter == nil && meterEnergy != nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages != nil: + case identifier != nil && meter != nil && meterEnergy == nil && phaseCurrents != nil && phaseGetter != nil && phaseSwitcher != nil && phaseVoltages != nil: return &struct { *Warp2 api.Identifier - api.MeterEnergy + api.Meter api.PhaseCurrents api.PhaseGetter api.PhaseSwitcher @@ -2640,8 +1134,8 @@ func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func( Identifier: &decorateWarp2IdentifierImpl{ identifier: identifier, }, - MeterEnergy: &decorateWarp2MeterEnergyImpl{ - meterEnergy: meterEnergy, + Meter: &decorateWarp2MeterImpl{ + meter: meter, }, PhaseCurrents: &decorateWarp2PhaseCurrentsImpl{ phaseCurrents: phaseCurrents, diff --git a/cmd/tools/decorate.go b/cmd/tools/decorate.go index dc61640c7d..730943df09 100644 --- a/cmd/tools/decorate.go +++ b/cmd/tools/decorate.go @@ -7,16 +7,21 @@ import ( "go/format" "io" "os" + "reflect" "slices" "strings" "text/template" + "github.com/evcc-io/evcc/api" "github.com/go-sprout/sprout/sprigin" combinations "github.com/mxschmitt/golang-combinations" + "github.com/samber/lo" "github.com/spf13/pflag" "golang.org/x/tools/imports" ) +//go:generate go run ./decorate.go -f decorateTest -b api.Charger -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.PhaseSwitcher,Phases1p3p,func(int) error" -t "api.PhaseGetter,GetPhases,func() (int, error)" + //go:embed decorate.tpl var srcTmpl string @@ -29,6 +34,42 @@ type typeStruct struct { Params []string } +var a struct { + api.Meter + api.MeterEnergy + api.PhaseCurrents + api.PhaseVoltages + api.PhasePowers + + api.PhaseSwitcher + api.PhaseGetter + + api.Battery + api.BatteryCapacity + api.BatteryController +} + +func typ(i any) string { + return reflect.TypeOf(i).Elem().String() +} + +var dependents = map[string][]string{ + typ(&a.Meter): {typ(&a.MeterEnergy), typ(&a.PhaseCurrents), typ(&a.PhaseVoltages), typ(&a.PhasePowers)}, + typ(&a.PhaseCurrents): {typ(&a.PhasePowers)}, // phase powers are only used to determine currents sign + typ(&a.PhaseSwitcher): {typ(&a.PhaseGetter)}, + typ(&a.Battery): {typ(&a.BatteryCapacity), typ(&a.BatteryController)}, +} + +// hasIntersection returns if the slices intersect +func hasIntersection[T comparable](a, b []T) bool { + for _, el := range a { + if slices.Contains(b, el) { + return true + } + } + return false +} + func generate(out io.Writer, packageName, functionName, baseType string, dynamicTypes ...dynamicType) error { types := make(map[string]typeStruct, len(dynamicTypes)) combos := make([]string, 0) @@ -45,6 +86,21 @@ func generate(out io.Writer, packageName, functionName, baseType string, dynamic return ordered }, + "requiredType": func(c []string, typ string) bool { + for master, details := range dependents { + // exclude combinations where ... + // - master is part of the decorators + // - master is not part of the currently evaluated combination + // - details are part of the currently evaluated combination + if slices.Contains(combos, master) && !slices.Contains(c, master) && slices.Contains(details, typ) { + return false + } + } + return true + }, + "empty": func() []string { + return nil + }, }).Parse(srcTmpl) if err != nil { return err @@ -52,28 +108,25 @@ func generate(out io.Writer, packageName, functionName, baseType string, dynamic for _, dt := range dynamicTypes { parts := strings.SplitN(dt.typ, ".", 2) + lastPart := parts[len(parts)-1] openingBrace := strings.Index(dt.signature, "(") closingBrace := strings.Index(dt.signature, ")") paramsStr := dt.signature[openingBrace+1 : closingBrace] - paramsStr = strings.TrimSpace(paramsStr) - var params []string - if len(paramsStr) > 0 { + if paramsStr = strings.TrimSpace(paramsStr); len(paramsStr) > 0 { params = strings.Split(paramsStr, ",") } - returnValuesStr := dt.signature[closingBrace+1:] - types[dt.typ] = typeStruct{ Type: dt.typ, - ShortType: parts[1], - VarName: strings.ToLower(parts[1][:1]) + parts[1][1:], + ShortType: lastPart, + VarName: strings.ToLower(lastPart[:1]) + lastPart[1:], Signature: dt.signature, Function: dt.function, Params: params, - ReturnTypes: returnValuesStr, + ReturnTypes: dt.signature[closingBrace+1:], } combos = append(combos, dt.typ) @@ -89,6 +142,34 @@ func generate(out io.Writer, packageName, functionName, baseType string, dynamic shortBase = baseTypeParts[1] } + validCombos := make([][]string, 0) +COMBO: + for _, c := range combinations.All(combos) { + for master, details := range dependents { + // prune combinations where ... + // - master is part of the decorators + // - master is not part of the currently evaluated combination + // - details are part of the currently evaluated combination + // ... and remove details from the combination + if slices.Contains(combos, master) && !slices.Contains(c, master) && hasIntersection(c, details) { + c = lo.Without(c, details...) + + if len(c) == 0 { + continue COMBO + } + } + } + + // prune duplicates + for _, v := range validCombos { + if slices.Equal(v, c) { + continue COMBO + } + } + + validCombos = append(validCombos, c) + } + vars := struct { API string Package, Function string @@ -104,7 +185,7 @@ func generate(out io.Writer, packageName, functionName, baseType string, dynamic ShortBase: shortBase, ReturnType: returnType, Types: types, - Combinations: combinations.All(combos), + Combinations: validCombos, } return tmpl.Execute(out, vars) diff --git a/cmd/tools/decorate.tpl b/cmd/tools/decorate.tpl index 96dbbf1e44..cc686a980c 100644 --- a/cmd/tools/decorate.tpl +++ b/cmd/tools/decorate.tpl @@ -9,10 +9,12 @@ import ( {{define "case"}} {{- $combo := .Combo}} {{- $prefix := .Prefix}} - {{- $idx := 0}} + {{- $and := false}} {{- range $typ, $def := .Types}} - {{- if gt $idx 0}} &&{{else}}{{$idx = 1}}{{end}} {{$def.VarName}} {{if contains $combo $typ}}!={{else}}=={{end}} nil + {{- if requiredType $combo $typ}} + {{- if $and}} &&{{else}}{{$and = true}}{{end}} {{$def.VarName}} {{if contains $combo $typ}}!={{else}}=={{end}} nil + {{- end}} {{- end}}: return &struct { {{.BaseType}} @@ -38,10 +40,12 @@ func {{.Function}}(base {{.BaseType}}{{range ordered}}, {{.VarName}} {{.Signatur {{- $shortbase := .ShortBase}} {{- $prefix := .Function}} {{- $types := .Types}} -{{- $idx := 0}} +{{- $and := false}} switch { case {{- range $typ, $def := .Types}} - {{- if gt $idx 0}} &&{{else}}{{$idx = 1}}{{end}} {{$def.VarName}} == nil + {{- if requiredType empty $typ}} + {{- if $and}} &&{{else}}{{$and = true}}{{end}} {{$def.VarName}} == nil + {{- end}} {{- end}}: return base {{range $combo := .Combinations}} diff --git a/cmd/tools/decorate_decorators.go b/cmd/tools/decorate_decorators.go new file mode 100644 index 0000000000..a78e63b5a4 --- /dev/null +++ b/cmd/tools/decorate_decorators.go @@ -0,0 +1,111 @@ +package main + +// Code generated by github.com/evcc-io/evcc/cmd/tools/decorate.go. DO NOT EDIT. + +import ( + "github.com/evcc-io/evcc/api" +) + +func decorateTest(base api.Charger, meterEnergy func() (float64, error), phaseSwitcher func(int) error, phaseGetter func() (int, error)) api.Charger { + switch { + case meterEnergy == nil && phaseSwitcher == nil: + return base + + case meterEnergy != nil && phaseSwitcher == nil: + return &struct { + api.Charger + api.MeterEnergy + }{ + Charger: base, + MeterEnergy: &decorateTestMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + } + + case meterEnergy == nil && phaseGetter == nil && phaseSwitcher != nil: + return &struct { + api.Charger + api.PhaseSwitcher + }{ + Charger: base, + PhaseSwitcher: &decorateTestPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + } + + case meterEnergy != nil && phaseGetter == nil && phaseSwitcher != nil: + return &struct { + api.Charger + api.MeterEnergy + api.PhaseSwitcher + }{ + Charger: base, + MeterEnergy: &decorateTestMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseSwitcher: &decorateTestPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + } + + case meterEnergy == nil && phaseGetter != nil && phaseSwitcher != nil: + return &struct { + api.Charger + api.PhaseGetter + api.PhaseSwitcher + }{ + Charger: base, + PhaseGetter: &decorateTestPhaseGetterImpl{ + phaseGetter: phaseGetter, + }, + PhaseSwitcher: &decorateTestPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + } + + case meterEnergy != nil && phaseGetter != nil && phaseSwitcher != nil: + return &struct { + api.Charger + api.MeterEnergy + api.PhaseGetter + api.PhaseSwitcher + }{ + Charger: base, + MeterEnergy: &decorateTestMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseGetter: &decorateTestPhaseGetterImpl{ + phaseGetter: phaseGetter, + }, + PhaseSwitcher: &decorateTestPhaseSwitcherImpl{ + phaseSwitcher: phaseSwitcher, + }, + } + } + + return nil +} + +type decorateTestMeterEnergyImpl struct { + meterEnergy func() (float64, error) +} + +func (impl *decorateTestMeterEnergyImpl) TotalEnergy() (float64, error) { + return impl.meterEnergy() +} + +type decorateTestPhaseGetterImpl struct { + phaseGetter func() (int, error) +} + +func (impl *decorateTestPhaseGetterImpl) GetPhases() (int, error) { + return impl.phaseGetter() +} + +type decorateTestPhaseSwitcherImpl struct { + phaseSwitcher func(int) error +} + +func (impl *decorateTestPhaseSwitcherImpl) Phases1p3p(p0 int) error { + return impl.phaseSwitcher(p0) +} diff --git a/cmd/tools/decorate_test.go b/cmd/tools/decorate_test.go new file mode 100644 index 0000000000..649fabae56 --- /dev/null +++ b/cmd/tools/decorate_test.go @@ -0,0 +1,30 @@ +package main + +import ( + "testing" + + "github.com/evcc-io/evcc/api" + "github.com/stretchr/testify/assert" + "go.uber.org/mock/gomock" +) + +func TestDecorator(t *testing.T) { + ctrl := gomock.NewController(t) + c := api.NewMockCharger(ctrl) + + enG := func() (float64, error) { return 0, nil } + phS := func(int) error { return nil } + phG := func() (int, error) { return 0, nil } + _ = enG + _ = phS + _ = phG + + assert.NotNil(t, decorateTest(c, nil, nil, nil)) + assert.NotNil(t, decorateTest(c, nil, nil, phG)) + assert.NotNil(t, decorateTest(c, nil, phS, nil)) + assert.NotNil(t, decorateTest(c, nil, phS, phG)) + assert.NotNil(t, decorateTest(c, enG, nil, nil)) + assert.NotNil(t, decorateTest(c, enG, nil, phG)) + assert.NotNil(t, decorateTest(c, enG, phS, nil)) + assert.NotNil(t, decorateTest(c, enG, phS, phG)) +} diff --git a/meter/e3dc_decorators.go b/meter/e3dc_decorators.go index 5e7e3e478d..9d3ab4fefd 100644 --- a/meter/e3dc_decorators.go +++ b/meter/e3dc_decorators.go @@ -8,20 +8,9 @@ import ( func decorateE3dc(base *E3dc, batteryCapacity func() float64, battery func() (float64, error), batteryController func(api.BatteryMode) error) api.Meter { switch { - case battery == nil && batteryCapacity == nil && batteryController == nil: + case battery == nil: return base - case battery == nil && batteryCapacity != nil && batteryController == nil: - return &struct { - *E3dc - api.BatteryCapacity - }{ - E3dc: base, - BatteryCapacity: &decorateE3dcBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - } - case battery != nil && batteryCapacity == nil && batteryController == nil: return &struct { *E3dc @@ -48,32 +37,6 @@ func decorateE3dc(base *E3dc, batteryCapacity func() float64, battery func() (fl }, } - case battery == nil && batteryCapacity == nil && batteryController != nil: - return &struct { - *E3dc - api.BatteryController - }{ - E3dc: base, - BatteryController: &decorateE3dcBatteryControllerImpl{ - batteryController: batteryController, - }, - } - - case battery == nil && batteryCapacity != nil && batteryController != nil: - return &struct { - *E3dc - api.BatteryCapacity - api.BatteryController - }{ - E3dc: base, - BatteryCapacity: &decorateE3dcBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateE3dcBatteryControllerImpl{ - batteryController: batteryController, - }, - } - case battery != nil && batteryCapacity == nil && batteryController != nil: return &struct { *E3dc diff --git a/meter/lgess_decorators.go b/meter/lgess_decorators.go index 187e9a2161..83c12eba68 100644 --- a/meter/lgess_decorators.go +++ b/meter/lgess_decorators.go @@ -8,10 +8,10 @@ import ( func decorateLgEss(base *LgEss, meterEnergy func() (float64, error), battery func() (float64, error), batteryCapacity func() float64) api.Meter { switch { - case battery == nil && batteryCapacity == nil && meterEnergy == nil: + case battery == nil && meterEnergy == nil: return base - case battery == nil && batteryCapacity == nil && meterEnergy != nil: + case battery == nil && meterEnergy != nil: return &struct { *LgEss api.MeterEnergy @@ -48,32 +48,6 @@ func decorateLgEss(base *LgEss, meterEnergy func() (float64, error), battery fun }, } - case battery == nil && batteryCapacity != nil && meterEnergy == nil: - return &struct { - *LgEss - api.BatteryCapacity - }{ - LgEss: base, - BatteryCapacity: &decorateLgEssBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - } - - case battery == nil && batteryCapacity != nil && meterEnergy != nil: - return &struct { - *LgEss - api.BatteryCapacity - api.MeterEnergy - }{ - LgEss: base, - BatteryCapacity: &decorateLgEssBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - MeterEnergy: &decorateLgEssMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - case battery != nil && batteryCapacity != nil && meterEnergy == nil: return &struct { *LgEss diff --git a/meter/mbmd_decorators.go b/meter/mbmd_decorators.go index 9ee5e4d98f..ad371e9365 100644 --- a/meter/mbmd_decorators.go +++ b/meter/mbmd_decorators.go @@ -8,10 +8,10 @@ import ( func decorateModbusMbmd(base api.Meter, meterEnergy func() (float64, error), phaseCurrents func() (float64, float64, float64, error), phaseVoltages func() (float64, float64, float64, error), phasePowers func() (float64, float64, float64, error), battery func() (float64, error), batteryCapacity func() float64) api.Meter { switch { - case battery == nil && batteryCapacity == nil && meterEnergy == nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages == nil: + case battery == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return base - case battery == nil && batteryCapacity == nil && meterEnergy != nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages == nil: + case battery == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.MeterEnergy @@ -22,7 +22,7 @@ func decorateModbusMbmd(base api.Meter, meterEnergy func() (float64, error), pha }, } - case battery == nil && batteryCapacity == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: + case battery == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.PhaseCurrents @@ -33,7 +33,7 @@ func decorateModbusMbmd(base api.Meter, meterEnergy func() (float64, error), pha }, } - case battery == nil && batteryCapacity == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: + case battery == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.MeterEnergy @@ -48,7 +48,7 @@ func decorateModbusMbmd(base api.Meter, meterEnergy func() (float64, error), pha }, } - case battery == nil && batteryCapacity == nil && meterEnergy == nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages != nil: + case battery == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.PhaseVoltages @@ -59,7 +59,7 @@ func decorateModbusMbmd(base api.Meter, meterEnergy func() (float64, error), pha }, } - case battery == nil && batteryCapacity == nil && meterEnergy != nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages != nil: + case battery == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.MeterEnergy @@ -74,7 +74,7 @@ func decorateModbusMbmd(base api.Meter, meterEnergy func() (float64, error), pha }, } - case battery == nil && batteryCapacity == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: + case battery == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.PhaseCurrents @@ -89,7 +89,7 @@ func decorateModbusMbmd(base api.Meter, meterEnergy func() (float64, error), pha }, } - case battery == nil && batteryCapacity == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: + case battery == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.MeterEnergy @@ -108,33 +108,7 @@ func decorateModbusMbmd(base api.Meter, meterEnergy func() (float64, error), pha }, } - case battery == nil && batteryCapacity == nil && meterEnergy == nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages == nil: - return &struct { - api.Meter - api.PhasePowers - }{ - Meter: base, - PhasePowers: &decorateModbusMbmdPhasePowersImpl{ - phasePowers: phasePowers, - }, - } - - case battery == nil && batteryCapacity == nil && meterEnergy != nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages == nil: - return &struct { - api.Meter - api.MeterEnergy - api.PhasePowers - }{ - Meter: base, - MeterEnergy: &decorateModbusMbmdMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhasePowers: &decorateModbusMbmdPhasePowersImpl{ - phasePowers: phasePowers, - }, - } - - case battery == nil && batteryCapacity == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: + case battery == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.PhaseCurrents @@ -149,7 +123,7 @@ func decorateModbusMbmd(base api.Meter, meterEnergy func() (float64, error), pha }, } - case battery == nil && batteryCapacity == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: + case battery == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.MeterEnergy @@ -168,41 +142,7 @@ func decorateModbusMbmd(base api.Meter, meterEnergy func() (float64, error), pha }, } - case battery == nil && batteryCapacity == nil && meterEnergy == nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages != nil: - return &struct { - api.Meter - api.PhasePowers - api.PhaseVoltages - }{ - Meter: base, - PhasePowers: &decorateModbusMbmdPhasePowersImpl{ - phasePowers: phasePowers, - }, - PhaseVoltages: &decorateModbusMbmdPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery == nil && batteryCapacity == nil && meterEnergy != nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages != nil: - return &struct { - api.Meter - api.MeterEnergy - api.PhasePowers - api.PhaseVoltages - }{ - Meter: base, - MeterEnergy: &decorateModbusMbmdMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhasePowers: &decorateModbusMbmdPhasePowersImpl{ - phasePowers: phasePowers, - }, - PhaseVoltages: &decorateModbusMbmdPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery == nil && batteryCapacity == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: + case battery == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.PhaseCurrents @@ -221,7 +161,7 @@ func decorateModbusMbmd(base api.Meter, meterEnergy func() (float64, error), pha }, } - case battery == nil && batteryCapacity == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: + case battery == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.MeterEnergy @@ -244,7 +184,7 @@ func decorateModbusMbmd(base api.Meter, meterEnergy func() (float64, error), pha }, } - case battery != nil && batteryCapacity == nil && meterEnergy == nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery @@ -255,7 +195,7 @@ func decorateModbusMbmd(base api.Meter, meterEnergy func() (float64, error), pha }, } - case battery != nil && batteryCapacity == nil && meterEnergy != nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery @@ -304,7 +244,7 @@ func decorateModbusMbmd(base api.Meter, meterEnergy func() (float64, error), pha }, } - case battery != nil && batteryCapacity == nil && meterEnergy == nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery @@ -319,7 +259,7 @@ func decorateModbusMbmd(base api.Meter, meterEnergy func() (float64, error), pha }, } - case battery != nil && batteryCapacity == nil && meterEnergy != nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery @@ -380,40 +320,6 @@ func decorateModbusMbmd(base api.Meter, meterEnergy func() (float64, error), pha }, } - case battery != nil && batteryCapacity == nil && meterEnergy == nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages == nil: - return &struct { - api.Meter - api.Battery - api.PhasePowers - }{ - Meter: base, - Battery: &decorateModbusMbmdBatteryImpl{ - battery: battery, - }, - PhasePowers: &decorateModbusMbmdPhasePowersImpl{ - phasePowers: phasePowers, - }, - } - - case battery != nil && batteryCapacity == nil && meterEnergy != nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages == nil: - return &struct { - api.Meter - api.Battery - api.MeterEnergy - api.PhasePowers - }{ - Meter: base, - Battery: &decorateModbusMbmdBatteryImpl{ - battery: battery, - }, - MeterEnergy: &decorateModbusMbmdMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhasePowers: &decorateModbusMbmdPhasePowersImpl{ - phasePowers: phasePowers, - }, - } - case battery != nil && batteryCapacity == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter @@ -456,48 +362,6 @@ func decorateModbusMbmd(base api.Meter, meterEnergy func() (float64, error), pha }, } - case battery != nil && batteryCapacity == nil && meterEnergy == nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages != nil: - return &struct { - api.Meter - api.Battery - api.PhasePowers - api.PhaseVoltages - }{ - Meter: base, - Battery: &decorateModbusMbmdBatteryImpl{ - battery: battery, - }, - PhasePowers: &decorateModbusMbmdPhasePowersImpl{ - phasePowers: phasePowers, - }, - PhaseVoltages: &decorateModbusMbmdPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && meterEnergy != nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages != nil: - return &struct { - api.Meter - api.Battery - api.MeterEnergy - api.PhasePowers - api.PhaseVoltages - }{ - Meter: base, - Battery: &decorateModbusMbmdBatteryImpl{ - battery: battery, - }, - MeterEnergy: &decorateModbusMbmdMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhasePowers: &decorateModbusMbmdPhasePowersImpl{ - phasePowers: phasePowers, - }, - PhaseVoltages: &decorateModbusMbmdPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case battery != nil && batteryCapacity == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter @@ -548,311 +412,7 @@ func decorateModbusMbmd(base api.Meter, meterEnergy func() (float64, error), pha }, } - case battery == nil && batteryCapacity != nil && meterEnergy == nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages == nil: - return &struct { - api.Meter - api.BatteryCapacity - }{ - Meter: base, - BatteryCapacity: &decorateModbusMbmdBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - } - - case battery == nil && batteryCapacity != nil && meterEnergy != nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages == nil: - return &struct { - api.Meter - api.BatteryCapacity - api.MeterEnergy - }{ - Meter: base, - BatteryCapacity: &decorateModbusMbmdBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - MeterEnergy: &decorateModbusMbmdMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case battery == nil && batteryCapacity != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: - return &struct { - api.Meter - api.BatteryCapacity - api.PhaseCurrents - }{ - Meter: base, - BatteryCapacity: &decorateModbusMbmdBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - PhaseCurrents: &decorateModbusMbmdPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery == nil && batteryCapacity != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: - return &struct { - api.Meter - api.BatteryCapacity - api.MeterEnergy - api.PhaseCurrents - }{ - Meter: base, - BatteryCapacity: &decorateModbusMbmdBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - MeterEnergy: &decorateModbusMbmdMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateModbusMbmdPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery == nil && batteryCapacity != nil && meterEnergy == nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages != nil: - return &struct { - api.Meter - api.BatteryCapacity - api.PhaseVoltages - }{ - Meter: base, - BatteryCapacity: &decorateModbusMbmdBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - PhaseVoltages: &decorateModbusMbmdPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery == nil && batteryCapacity != nil && meterEnergy != nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages != nil: - return &struct { - api.Meter - api.BatteryCapacity - api.MeterEnergy - api.PhaseVoltages - }{ - Meter: base, - BatteryCapacity: &decorateModbusMbmdBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - MeterEnergy: &decorateModbusMbmdMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateModbusMbmdPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery == nil && batteryCapacity != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: - return &struct { - api.Meter - api.BatteryCapacity - api.PhaseCurrents - api.PhaseVoltages - }{ - Meter: base, - BatteryCapacity: &decorateModbusMbmdBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - PhaseCurrents: &decorateModbusMbmdPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateModbusMbmdPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery == nil && batteryCapacity != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: - return &struct { - api.Meter - api.BatteryCapacity - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - Meter: base, - BatteryCapacity: &decorateModbusMbmdBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - MeterEnergy: &decorateModbusMbmdMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateModbusMbmdPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateModbusMbmdPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery == nil && batteryCapacity != nil && meterEnergy == nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages == nil: - return &struct { - api.Meter - api.BatteryCapacity - api.PhasePowers - }{ - Meter: base, - BatteryCapacity: &decorateModbusMbmdBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - PhasePowers: &decorateModbusMbmdPhasePowersImpl{ - phasePowers: phasePowers, - }, - } - - case battery == nil && batteryCapacity != nil && meterEnergy != nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages == nil: - return &struct { - api.Meter - api.BatteryCapacity - api.MeterEnergy - api.PhasePowers - }{ - Meter: base, - BatteryCapacity: &decorateModbusMbmdBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - MeterEnergy: &decorateModbusMbmdMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhasePowers: &decorateModbusMbmdPhasePowersImpl{ - phasePowers: phasePowers, - }, - } - - case battery == nil && batteryCapacity != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: - return &struct { - api.Meter - api.BatteryCapacity - api.PhaseCurrents - api.PhasePowers - }{ - Meter: base, - BatteryCapacity: &decorateModbusMbmdBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - PhaseCurrents: &decorateModbusMbmdPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhasePowers: &decorateModbusMbmdPhasePowersImpl{ - phasePowers: phasePowers, - }, - } - - case battery == nil && batteryCapacity != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: - return &struct { - api.Meter - api.BatteryCapacity - api.MeterEnergy - api.PhaseCurrents - api.PhasePowers - }{ - Meter: base, - BatteryCapacity: &decorateModbusMbmdBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - MeterEnergy: &decorateModbusMbmdMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateModbusMbmdPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhasePowers: &decorateModbusMbmdPhasePowersImpl{ - phasePowers: phasePowers, - }, - } - - case battery == nil && batteryCapacity != nil && meterEnergy == nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages != nil: - return &struct { - api.Meter - api.BatteryCapacity - api.PhasePowers - api.PhaseVoltages - }{ - Meter: base, - BatteryCapacity: &decorateModbusMbmdBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - PhasePowers: &decorateModbusMbmdPhasePowersImpl{ - phasePowers: phasePowers, - }, - PhaseVoltages: &decorateModbusMbmdPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery == nil && batteryCapacity != nil && meterEnergy != nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages != nil: - return &struct { - api.Meter - api.BatteryCapacity - api.MeterEnergy - api.PhasePowers - api.PhaseVoltages - }{ - Meter: base, - BatteryCapacity: &decorateModbusMbmdBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - MeterEnergy: &decorateModbusMbmdMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhasePowers: &decorateModbusMbmdPhasePowersImpl{ - phasePowers: phasePowers, - }, - PhaseVoltages: &decorateModbusMbmdPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery == nil && batteryCapacity != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: - return &struct { - api.Meter - api.BatteryCapacity - api.PhaseCurrents - api.PhasePowers - api.PhaseVoltages - }{ - Meter: base, - BatteryCapacity: &decorateModbusMbmdBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - PhaseCurrents: &decorateModbusMbmdPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhasePowers: &decorateModbusMbmdPhasePowersImpl{ - phasePowers: phasePowers, - }, - PhaseVoltages: &decorateModbusMbmdPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery == nil && batteryCapacity != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: - return &struct { - api.Meter - api.BatteryCapacity - api.MeterEnergy - api.PhaseCurrents - api.PhasePowers - api.PhaseVoltages - }{ - Meter: base, - BatteryCapacity: &decorateModbusMbmdBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - MeterEnergy: &decorateModbusMbmdMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateModbusMbmdPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhasePowers: &decorateModbusMbmdPhasePowersImpl{ - phasePowers: phasePowers, - }, - PhaseVoltages: &decorateModbusMbmdPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && meterEnergy == nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery @@ -867,7 +427,7 @@ func decorateModbusMbmd(base api.Meter, meterEnergy func() (float64, error), pha }, } - case battery != nil && batteryCapacity != nil && meterEnergy != nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery @@ -928,7 +488,7 @@ func decorateModbusMbmd(base api.Meter, meterEnergy func() (float64, error), pha }, } - case battery != nil && batteryCapacity != nil && meterEnergy == nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery @@ -947,7 +507,7 @@ func decorateModbusMbmd(base api.Meter, meterEnergy func() (float64, error), pha }, } - case battery != nil && batteryCapacity != nil && meterEnergy != nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery @@ -1020,48 +580,6 @@ func decorateModbusMbmd(base api.Meter, meterEnergy func() (float64, error), pha }, } - case battery != nil && batteryCapacity != nil && meterEnergy == nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages == nil: - return &struct { - api.Meter - api.Battery - api.BatteryCapacity - api.PhasePowers - }{ - Meter: base, - Battery: &decorateModbusMbmdBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateModbusMbmdBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - PhasePowers: &decorateModbusMbmdPhasePowersImpl{ - phasePowers: phasePowers, - }, - } - - case battery != nil && batteryCapacity != nil && meterEnergy != nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages == nil: - return &struct { - api.Meter - api.Battery - api.BatteryCapacity - api.MeterEnergy - api.PhasePowers - }{ - Meter: base, - Battery: &decorateModbusMbmdBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateModbusMbmdBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - MeterEnergy: &decorateModbusMbmdMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhasePowers: &decorateModbusMbmdPhasePowersImpl{ - phasePowers: phasePowers, - }, - } - case battery != nil && batteryCapacity != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter @@ -1112,56 +630,6 @@ func decorateModbusMbmd(base api.Meter, meterEnergy func() (float64, error), pha }, } - case battery != nil && batteryCapacity != nil && meterEnergy == nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages != nil: - return &struct { - api.Meter - api.Battery - api.BatteryCapacity - api.PhasePowers - api.PhaseVoltages - }{ - Meter: base, - Battery: &decorateModbusMbmdBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateModbusMbmdBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - PhasePowers: &decorateModbusMbmdPhasePowersImpl{ - phasePowers: phasePowers, - }, - PhaseVoltages: &decorateModbusMbmdPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && meterEnergy != nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages != nil: - return &struct { - api.Meter - api.Battery - api.BatteryCapacity - api.MeterEnergy - api.PhasePowers - api.PhaseVoltages - }{ - Meter: base, - Battery: &decorateModbusMbmdBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateModbusMbmdBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - MeterEnergy: &decorateModbusMbmdMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhasePowers: &decorateModbusMbmdPhasePowersImpl{ - phasePowers: phasePowers, - }, - PhaseVoltages: &decorateModbusMbmdPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case battery != nil && batteryCapacity != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter diff --git a/meter/meter_decorators.go b/meter/meter_decorators.go index c53e1516be..2c0223b050 100644 --- a/meter/meter_decorators.go +++ b/meter/meter_decorators.go @@ -8,10 +8,10 @@ import ( func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCurrents func() (float64, float64, float64, error), phaseVoltages func() (float64, float64, float64, error), phasePowers func() (float64, float64, float64, error), battery func() (float64, error), batteryCapacity func() float64, batteryController func(api.BatteryMode) error) api.Meter { switch { - case battery == nil && batteryCapacity == nil && batteryController == nil && meterEnergy == nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages == nil: + case battery == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return base - case battery == nil && batteryCapacity == nil && batteryController == nil && meterEnergy != nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages == nil: + case battery == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.MeterEnergy @@ -22,7 +22,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery == nil && batteryCapacity == nil && batteryController == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: + case battery == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.PhaseCurrents @@ -33,7 +33,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery == nil && batteryCapacity == nil && batteryController == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: + case battery == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.MeterEnergy @@ -48,7 +48,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery == nil && batteryCapacity == nil && batteryController == nil && meterEnergy == nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages != nil: + case battery == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.PhaseVoltages @@ -59,7 +59,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery == nil && batteryCapacity == nil && batteryController == nil && meterEnergy != nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages != nil: + case battery == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.MeterEnergy @@ -74,7 +74,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery == nil && batteryCapacity == nil && batteryController == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: + case battery == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.PhaseCurrents @@ -89,7 +89,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery == nil && batteryCapacity == nil && batteryController == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: + case battery == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.MeterEnergy @@ -108,33 +108,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery == nil && batteryCapacity == nil && batteryController == nil && meterEnergy == nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages == nil: - return &struct { - api.Meter - api.PhasePowers - }{ - Meter: base, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - } - - case battery == nil && batteryCapacity == nil && batteryController == nil && meterEnergy != nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages == nil: - return &struct { - api.Meter - api.MeterEnergy - api.PhasePowers - }{ - Meter: base, - MeterEnergy: &decorateMeterMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - } - - case battery == nil && batteryCapacity == nil && batteryController == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: + case battery == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.PhaseCurrents @@ -149,7 +123,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery == nil && batteryCapacity == nil && batteryController == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: + case battery == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.MeterEnergy @@ -168,41 +142,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery == nil && batteryCapacity == nil && batteryController == nil && meterEnergy == nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages != nil: - return &struct { - api.Meter - api.PhasePowers - api.PhaseVoltages - }{ - Meter: base, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery == nil && batteryCapacity == nil && batteryController == nil && meterEnergy != nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages != nil: - return &struct { - api.Meter - api.MeterEnergy - api.PhasePowers - api.PhaseVoltages - }{ - Meter: base, - MeterEnergy: &decorateMeterMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery == nil && batteryCapacity == nil && batteryController == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: + case battery == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.PhaseCurrents @@ -221,7 +161,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery == nil && batteryCapacity == nil && batteryController == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: + case battery == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.MeterEnergy @@ -244,7 +184,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController == nil && meterEnergy == nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity == nil && batteryController == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery @@ -255,7 +195,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController == nil && meterEnergy != nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity == nil && batteryController == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery @@ -304,7 +244,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController == nil && meterEnergy == nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity == nil && batteryController == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery @@ -319,7 +259,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController == nil && meterEnergy != nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity == nil && batteryController == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery @@ -380,40 +320,6 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController == nil && meterEnergy == nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages == nil: - return &struct { - api.Meter - api.Battery - api.PhasePowers - }{ - Meter: base, - Battery: &decorateMeterBatteryImpl{ - battery: battery, - }, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && meterEnergy != nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages == nil: - return &struct { - api.Meter - api.Battery - api.MeterEnergy - api.PhasePowers - }{ - Meter: base, - Battery: &decorateMeterBatteryImpl{ - battery: battery, - }, - MeterEnergy: &decorateMeterMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - } - case battery != nil && batteryCapacity == nil && batteryController == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter @@ -456,48 +362,6 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController == nil && meterEnergy == nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages != nil: - return &struct { - api.Meter - api.Battery - api.PhasePowers - api.PhaseVoltages - }{ - Meter: base, - Battery: &decorateMeterBatteryImpl{ - battery: battery, - }, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && meterEnergy != nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages != nil: - return &struct { - api.Meter - api.Battery - api.MeterEnergy - api.PhasePowers - api.PhaseVoltages - }{ - Meter: base, - Battery: &decorateMeterBatteryImpl{ - battery: battery, - }, - MeterEnergy: &decorateMeterMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case battery != nil && batteryCapacity == nil && batteryController == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter @@ -548,24 +412,32 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery == nil && batteryCapacity != nil && batteryController == nil && meterEnergy == nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity != nil && batteryController == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter + api.Battery api.BatteryCapacity }{ Meter: base, + Battery: &decorateMeterBatteryImpl{ + battery: battery, + }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, } - case battery == nil && batteryCapacity != nil && batteryController == nil && meterEnergy != nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity != nil && batteryController == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter + api.Battery api.BatteryCapacity api.MeterEnergy }{ Meter: base, + Battery: &decorateMeterBatteryImpl{ + battery: battery, + }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, @@ -574,13 +446,17 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery == nil && batteryCapacity != nil && batteryController == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity != nil && batteryController == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter + api.Battery api.BatteryCapacity api.PhaseCurrents }{ Meter: base, + Battery: &decorateMeterBatteryImpl{ + battery: battery, + }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, @@ -589,14 +465,18 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery == nil && batteryCapacity != nil && batteryController == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity != nil && batteryController == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter + api.Battery api.BatteryCapacity api.MeterEnergy api.PhaseCurrents }{ Meter: base, + Battery: &decorateMeterBatteryImpl{ + battery: battery, + }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, @@ -608,13 +488,17 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery == nil && batteryCapacity != nil && batteryController == nil && meterEnergy == nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity != nil && batteryController == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter + api.Battery api.BatteryCapacity api.PhaseVoltages }{ Meter: base, + Battery: &decorateMeterBatteryImpl{ + battery: battery, + }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, @@ -623,14 +507,18 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery == nil && batteryCapacity != nil && batteryController == nil && meterEnergy != nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity != nil && batteryController == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter + api.Battery api.BatteryCapacity api.MeterEnergy api.PhaseVoltages }{ Meter: base, + Battery: &decorateMeterBatteryImpl{ + battery: battery, + }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, @@ -642,14 +530,18 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery == nil && batteryCapacity != nil && batteryController == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity != nil && batteryController == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter + api.Battery api.BatteryCapacity api.PhaseCurrents api.PhaseVoltages }{ Meter: base, + Battery: &decorateMeterBatteryImpl{ + battery: battery, + }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, @@ -661,15 +553,19 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery == nil && batteryCapacity != nil && batteryController == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity != nil && batteryController == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter + api.Battery api.BatteryCapacity api.MeterEnergy api.PhaseCurrents api.PhaseVoltages }{ Meter: base, + Battery: &decorateMeterBatteryImpl{ + battery: battery, + }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, @@ -684,48 +580,69 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery == nil && batteryCapacity != nil && batteryController == nil && meterEnergy == nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages == nil: + case battery != nil && batteryCapacity != nil && batteryController == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter + api.Battery api.BatteryCapacity + api.PhaseCurrents api.PhasePowers }{ Meter: base, + Battery: &decorateMeterBatteryImpl{ + battery: battery, + }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, + PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } - case battery == nil && batteryCapacity != nil && batteryController == nil && meterEnergy != nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages == nil: + case battery != nil && batteryCapacity != nil && batteryController == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter + api.Battery api.BatteryCapacity api.MeterEnergy + api.PhaseCurrents api.PhasePowers }{ Meter: base, + Battery: &decorateMeterBatteryImpl{ + battery: battery, + }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, + PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, } - case battery == nil && batteryCapacity != nil && batteryController == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: + case battery != nil && batteryCapacity != nil && batteryController == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter + api.Battery api.BatteryCapacity api.PhaseCurrents api.PhasePowers + api.PhaseVoltages }{ Meter: base, + Battery: &decorateMeterBatteryImpl{ + battery: battery, + }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, @@ -735,17 +652,25 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, + PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, } - case battery == nil && batteryCapacity != nil && batteryController == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: + case battery != nil && batteryCapacity != nil && batteryController == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter + api.Battery api.BatteryCapacity api.MeterEnergy api.PhaseCurrents api.PhasePowers + api.PhaseVoltages }{ Meter: base, + Battery: &decorateMeterBatteryImpl{ + battery: battery, + }, BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, @@ -758,1204 +683,75 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur PhasePowers: &decorateMeterPhasePowersImpl{ phasePowers: phasePowers, }, + PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, } - case battery == nil && batteryCapacity != nil && batteryController == nil && meterEnergy == nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages != nil: + case battery != nil && batteryCapacity == nil && batteryController != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter - api.BatteryCapacity - api.PhasePowers - api.PhaseVoltages + api.Battery + api.BatteryController }{ Meter: base, - BatteryCapacity: &decorateMeterBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, + Battery: &decorateMeterBatteryImpl{ + battery: battery, }, - PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, + BatteryController: &decorateMeterBatteryControllerImpl{ + batteryController: batteryController, }, } - case battery == nil && batteryCapacity != nil && batteryController == nil && meterEnergy != nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages != nil: + case battery != nil && batteryCapacity == nil && batteryController != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter - api.BatteryCapacity + api.Battery + api.BatteryController api.MeterEnergy - api.PhasePowers - api.PhaseVoltages }{ Meter: base, - BatteryCapacity: &decorateMeterBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, + Battery: &decorateMeterBatteryImpl{ + battery: battery, + }, + BatteryController: &decorateMeterBatteryControllerImpl{ + batteryController: batteryController, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, } - case battery == nil && batteryCapacity != nil && batteryController == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: + case battery != nil && batteryCapacity == nil && batteryController != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter - api.BatteryCapacity + api.Battery + api.BatteryController api.PhaseCurrents - api.PhasePowers - api.PhaseVoltages }{ Meter: base, - BatteryCapacity: &decorateMeterBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, + Battery: &decorateMeterBatteryImpl{ + battery: battery, + }, + BatteryController: &decorateMeterBatteryControllerImpl{ + batteryController: batteryController, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, } - case battery == nil && batteryCapacity != nil && batteryController == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: + case battery != nil && batteryCapacity == nil && batteryController != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter - api.BatteryCapacity - api.MeterEnergy - api.PhaseCurrents - api.PhasePowers - api.PhaseVoltages - }{ - Meter: base, - BatteryCapacity: &decorateMeterBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - MeterEnergy: &decorateMeterMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && meterEnergy == nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages == nil: - return &struct { - api.Meter - api.Battery - api.BatteryCapacity - }{ - Meter: base, - Battery: &decorateMeterBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateMeterBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && meterEnergy != nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages == nil: - return &struct { - api.Meter - api.Battery - api.BatteryCapacity - api.MeterEnergy - }{ - Meter: base, - Battery: &decorateMeterBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateMeterBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - MeterEnergy: &decorateMeterMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: - return &struct { - api.Meter - api.Battery - api.BatteryCapacity - api.PhaseCurrents - }{ - Meter: base, - Battery: &decorateMeterBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateMeterBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: - return &struct { - api.Meter - api.Battery - api.BatteryCapacity - api.MeterEnergy - api.PhaseCurrents - }{ - Meter: base, - Battery: &decorateMeterBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateMeterBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - MeterEnergy: &decorateMeterMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && meterEnergy == nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages != nil: - return &struct { - api.Meter - api.Battery - api.BatteryCapacity - api.PhaseVoltages - }{ - Meter: base, - Battery: &decorateMeterBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateMeterBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && meterEnergy != nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages != nil: - return &struct { - api.Meter - api.Battery - api.BatteryCapacity - api.MeterEnergy - api.PhaseVoltages - }{ - Meter: base, - Battery: &decorateMeterBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateMeterBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - MeterEnergy: &decorateMeterMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: - return &struct { - api.Meter - api.Battery - api.BatteryCapacity - api.PhaseCurrents - api.PhaseVoltages - }{ - Meter: base, - Battery: &decorateMeterBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateMeterBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: - return &struct { - api.Meter - api.Battery - api.BatteryCapacity - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - Meter: base, - Battery: &decorateMeterBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateMeterBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - MeterEnergy: &decorateMeterMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && meterEnergy == nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages == nil: - return &struct { - api.Meter - api.Battery - api.BatteryCapacity - api.PhasePowers - }{ - Meter: base, - Battery: &decorateMeterBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateMeterBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && meterEnergy != nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages == nil: - return &struct { - api.Meter - api.Battery - api.BatteryCapacity - api.MeterEnergy - api.PhasePowers - }{ - Meter: base, - Battery: &decorateMeterBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateMeterBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - MeterEnergy: &decorateMeterMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: - return &struct { - api.Meter - api.Battery - api.BatteryCapacity - api.PhaseCurrents - api.PhasePowers - }{ - Meter: base, - Battery: &decorateMeterBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateMeterBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: - return &struct { - api.Meter - api.Battery - api.BatteryCapacity - api.MeterEnergy - api.PhaseCurrents - api.PhasePowers - }{ - Meter: base, - Battery: &decorateMeterBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateMeterBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - MeterEnergy: &decorateMeterMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && meterEnergy == nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages != nil: - return &struct { - api.Meter - api.Battery - api.BatteryCapacity - api.PhasePowers - api.PhaseVoltages - }{ - Meter: base, - Battery: &decorateMeterBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateMeterBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && meterEnergy != nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages != nil: - return &struct { - api.Meter - api.Battery - api.BatteryCapacity - api.MeterEnergy - api.PhasePowers - api.PhaseVoltages - }{ - Meter: base, - Battery: &decorateMeterBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateMeterBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - MeterEnergy: &decorateMeterMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: - return &struct { - api.Meter - api.Battery - api.BatteryCapacity - api.PhaseCurrents - api.PhasePowers - api.PhaseVoltages - }{ - Meter: base, - Battery: &decorateMeterBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateMeterBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: - return &struct { - api.Meter - api.Battery - api.BatteryCapacity - api.MeterEnergy - api.PhaseCurrents - api.PhasePowers - api.PhaseVoltages - }{ - Meter: base, - Battery: &decorateMeterBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateMeterBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - MeterEnergy: &decorateMeterMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery == nil && batteryCapacity == nil && batteryController != nil && meterEnergy == nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages == nil: - return &struct { - api.Meter - api.BatteryController - }{ - Meter: base, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - } - - case battery == nil && batteryCapacity == nil && batteryController != nil && meterEnergy != nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages == nil: - return &struct { - api.Meter - api.BatteryController - api.MeterEnergy - }{ - Meter: base, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - MeterEnergy: &decorateMeterMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case battery == nil && batteryCapacity == nil && batteryController != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: - return &struct { - api.Meter - api.BatteryController - api.PhaseCurrents - }{ - Meter: base, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery == nil && batteryCapacity == nil && batteryController != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: - return &struct { - api.Meter - api.BatteryController - api.MeterEnergy - api.PhaseCurrents - }{ - Meter: base, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - MeterEnergy: &decorateMeterMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery == nil && batteryCapacity == nil && batteryController != nil && meterEnergy == nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages != nil: - return &struct { - api.Meter - api.BatteryController - api.PhaseVoltages - }{ - Meter: base, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery == nil && batteryCapacity == nil && batteryController != nil && meterEnergy != nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages != nil: - return &struct { - api.Meter - api.BatteryController - api.MeterEnergy - api.PhaseVoltages - }{ - Meter: base, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - MeterEnergy: &decorateMeterMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery == nil && batteryCapacity == nil && batteryController != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: - return &struct { - api.Meter - api.BatteryController - api.PhaseCurrents - api.PhaseVoltages - }{ - Meter: base, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery == nil && batteryCapacity == nil && batteryController != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: - return &struct { - api.Meter - api.BatteryController - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - Meter: base, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - MeterEnergy: &decorateMeterMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery == nil && batteryCapacity == nil && batteryController != nil && meterEnergy == nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages == nil: - return &struct { - api.Meter - api.BatteryController - api.PhasePowers - }{ - Meter: base, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - } - - case battery == nil && batteryCapacity == nil && batteryController != nil && meterEnergy != nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages == nil: - return &struct { - api.Meter - api.BatteryController - api.MeterEnergy - api.PhasePowers - }{ - Meter: base, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - MeterEnergy: &decorateMeterMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - } - - case battery == nil && batteryCapacity == nil && batteryController != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: - return &struct { - api.Meter - api.BatteryController - api.PhaseCurrents - api.PhasePowers - }{ - Meter: base, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - } - - case battery == nil && batteryCapacity == nil && batteryController != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: - return &struct { - api.Meter - api.BatteryController - api.MeterEnergy - api.PhaseCurrents - api.PhasePowers - }{ - Meter: base, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - MeterEnergy: &decorateMeterMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - } - - case battery == nil && batteryCapacity == nil && batteryController != nil && meterEnergy == nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages != nil: - return &struct { - api.Meter - api.BatteryController - api.PhasePowers - api.PhaseVoltages - }{ - Meter: base, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery == nil && batteryCapacity == nil && batteryController != nil && meterEnergy != nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages != nil: - return &struct { - api.Meter - api.BatteryController - api.MeterEnergy - api.PhasePowers - api.PhaseVoltages - }{ - Meter: base, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - MeterEnergy: &decorateMeterMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery == nil && batteryCapacity == nil && batteryController != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: - return &struct { - api.Meter - api.BatteryController - api.PhaseCurrents - api.PhasePowers - api.PhaseVoltages - }{ - Meter: base, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery == nil && batteryCapacity == nil && batteryController != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: - return &struct { - api.Meter - api.BatteryController - api.MeterEnergy - api.PhaseCurrents - api.PhasePowers - api.PhaseVoltages - }{ - Meter: base, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - MeterEnergy: &decorateMeterMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && meterEnergy == nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages == nil: - return &struct { - api.Meter - api.Battery - api.BatteryController - }{ - Meter: base, - Battery: &decorateMeterBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && meterEnergy != nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages == nil: - return &struct { - api.Meter - api.Battery - api.BatteryController - api.MeterEnergy - }{ - Meter: base, - Battery: &decorateMeterBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - MeterEnergy: &decorateMeterMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: - return &struct { - api.Meter - api.Battery - api.BatteryController - api.PhaseCurrents - }{ - Meter: base, - Battery: &decorateMeterBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: - return &struct { - api.Meter - api.Battery - api.BatteryController - api.MeterEnergy - api.PhaseCurrents - }{ - Meter: base, - Battery: &decorateMeterBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - MeterEnergy: &decorateMeterMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && meterEnergy == nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages != nil: - return &struct { - api.Meter - api.Battery - api.BatteryController - api.PhaseVoltages - }{ - Meter: base, - Battery: &decorateMeterBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && meterEnergy != nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages != nil: - return &struct { - api.Meter - api.Battery - api.BatteryController - api.MeterEnergy - api.PhaseVoltages - }{ - Meter: base, - Battery: &decorateMeterBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - MeterEnergy: &decorateMeterMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: - return &struct { - api.Meter - api.Battery - api.BatteryController - api.PhaseCurrents - api.PhaseVoltages - }{ - Meter: base, - Battery: &decorateMeterBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: - return &struct { - api.Meter - api.Battery - api.BatteryController - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - Meter: base, - Battery: &decorateMeterBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - MeterEnergy: &decorateMeterMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && meterEnergy == nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages == nil: - return &struct { - api.Meter - api.Battery - api.BatteryController - api.PhasePowers - }{ - Meter: base, - Battery: &decorateMeterBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && meterEnergy != nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages == nil: - return &struct { - api.Meter - api.Battery - api.BatteryController - api.MeterEnergy - api.PhasePowers - }{ - Meter: base, - Battery: &decorateMeterBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - MeterEnergy: &decorateMeterMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: - return &struct { - api.Meter - api.Battery - api.BatteryController - api.PhaseCurrents - api.PhasePowers - }{ - Meter: base, - Battery: &decorateMeterBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: - return &struct { - api.Meter - api.Battery - api.BatteryController - api.MeterEnergy - api.PhaseCurrents - api.PhasePowers - }{ - Meter: base, - Battery: &decorateMeterBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - MeterEnergy: &decorateMeterMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && meterEnergy == nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages != nil: - return &struct { - api.Meter - api.Battery - api.BatteryController - api.PhasePowers - api.PhaseVoltages - }{ - Meter: base, - Battery: &decorateMeterBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && meterEnergy != nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages != nil: - return &struct { - api.Meter - api.Battery - api.BatteryController - api.MeterEnergy - api.PhasePowers - api.PhaseVoltages - }{ - Meter: base, - Battery: &decorateMeterBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - MeterEnergy: &decorateMeterMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: - return &struct { - api.Meter - api.Battery - api.BatteryController - api.PhaseCurrents - api.PhasePowers - api.PhaseVoltages - }{ - Meter: base, - Battery: &decorateMeterBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: - return &struct { - api.Meter - api.Battery - api.BatteryController - api.MeterEnergy - api.PhaseCurrents - api.PhasePowers - api.PhaseVoltages - }{ - Meter: base, - Battery: &decorateMeterBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - MeterEnergy: &decorateMeterMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery == nil && batteryCapacity != nil && batteryController != nil && meterEnergy == nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages == nil: - return &struct { - api.Meter - api.BatteryCapacity - api.BatteryController - }{ - Meter: base, - BatteryCapacity: &decorateMeterBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - } - - case battery == nil && batteryCapacity != nil && batteryController != nil && meterEnergy != nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages == nil: - return &struct { - api.Meter - api.BatteryCapacity - api.BatteryController - api.MeterEnergy - }{ - Meter: base, - BatteryCapacity: &decorateMeterBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - MeterEnergy: &decorateMeterMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case battery == nil && batteryCapacity != nil && batteryController != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: - return &struct { - api.Meter - api.BatteryCapacity - api.BatteryController - api.PhaseCurrents - }{ - Meter: base, - BatteryCapacity: &decorateMeterBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery == nil && batteryCapacity != nil && batteryController != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: - return &struct { - api.Meter - api.BatteryCapacity + api.Battery api.BatteryController api.MeterEnergy api.PhaseCurrents }{ Meter: base, - BatteryCapacity: &decorateMeterBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, + Battery: &decorateMeterBatteryImpl{ + battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, @@ -1968,16 +764,16 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery == nil && batteryCapacity != nil && batteryController != nil && meterEnergy == nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity == nil && batteryController != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter - api.BatteryCapacity + api.Battery api.BatteryController api.PhaseVoltages }{ Meter: base, - BatteryCapacity: &decorateMeterBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, + Battery: &decorateMeterBatteryImpl{ + battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, @@ -1987,17 +783,17 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery == nil && batteryCapacity != nil && batteryController != nil && meterEnergy != nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity == nil && batteryController != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter - api.BatteryCapacity + api.Battery api.BatteryController api.MeterEnergy api.PhaseVoltages }{ Meter: base, - BatteryCapacity: &decorateMeterBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, + Battery: &decorateMeterBatteryImpl{ + battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, @@ -2010,17 +806,17 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery == nil && batteryCapacity != nil && batteryController != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity == nil && batteryController != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter - api.BatteryCapacity + api.Battery api.BatteryController api.PhaseCurrents api.PhaseVoltages }{ Meter: base, - BatteryCapacity: &decorateMeterBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, + Battery: &decorateMeterBatteryImpl{ + battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, @@ -2033,18 +829,18 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery == nil && batteryCapacity != nil && batteryController != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity == nil && batteryController != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter - api.BatteryCapacity + api.Battery api.BatteryController api.MeterEnergy api.PhaseCurrents api.PhaseVoltages }{ Meter: base, - BatteryCapacity: &decorateMeterBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, + Battery: &decorateMeterBatteryImpl{ + battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, @@ -2060,59 +856,17 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery == nil && batteryCapacity != nil && batteryController != nil && meterEnergy == nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages == nil: - return &struct { - api.Meter - api.BatteryCapacity - api.BatteryController - api.PhasePowers - }{ - Meter: base, - BatteryCapacity: &decorateMeterBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - } - - case battery == nil && batteryCapacity != nil && batteryController != nil && meterEnergy != nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages == nil: - return &struct { - api.Meter - api.BatteryCapacity - api.BatteryController - api.MeterEnergy - api.PhasePowers - }{ - Meter: base, - BatteryCapacity: &decorateMeterBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - MeterEnergy: &decorateMeterMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - } - - case battery == nil && batteryCapacity != nil && batteryController != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: + case battery != nil && batteryCapacity == nil && batteryController != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter - api.BatteryCapacity + api.Battery api.BatteryController api.PhaseCurrents api.PhasePowers }{ Meter: base, - BatteryCapacity: &decorateMeterBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, + Battery: &decorateMeterBatteryImpl{ + battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, @@ -2125,18 +879,18 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery == nil && batteryCapacity != nil && batteryController != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: + case battery != nil && batteryCapacity == nil && batteryController != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter - api.BatteryCapacity + api.Battery api.BatteryController api.MeterEnergy api.PhaseCurrents api.PhasePowers }{ Meter: base, - BatteryCapacity: &decorateMeterBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, + Battery: &decorateMeterBatteryImpl{ + battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, @@ -2152,68 +906,18 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery == nil && batteryCapacity != nil && batteryController != nil && meterEnergy == nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages != nil: - return &struct { - api.Meter - api.BatteryCapacity - api.BatteryController - api.PhasePowers - api.PhaseVoltages - }{ - Meter: base, - BatteryCapacity: &decorateMeterBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery == nil && batteryCapacity != nil && batteryController != nil && meterEnergy != nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages != nil: - return &struct { - api.Meter - api.BatteryCapacity - api.BatteryController - api.MeterEnergy - api.PhasePowers - api.PhaseVoltages - }{ - Meter: base, - BatteryCapacity: &decorateMeterBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - MeterEnergy: &decorateMeterMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery == nil && batteryCapacity != nil && batteryController != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: + case battery != nil && batteryCapacity == nil && batteryController != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter - api.BatteryCapacity + api.Battery api.BatteryController api.PhaseCurrents api.PhasePowers api.PhaseVoltages }{ Meter: base, - BatteryCapacity: &decorateMeterBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, + Battery: &decorateMeterBatteryImpl{ + battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, @@ -2229,10 +933,10 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery == nil && batteryCapacity != nil && batteryController != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: + case battery != nil && batteryCapacity == nil && batteryController != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter - api.BatteryCapacity + api.Battery api.BatteryController api.MeterEnergy api.PhaseCurrents @@ -2240,8 +944,8 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur api.PhaseVoltages }{ Meter: base, - BatteryCapacity: &decorateMeterBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, + Battery: &decorateMeterBatteryImpl{ + battery: battery, }, BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, @@ -2260,7 +964,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController != nil && meterEnergy == nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity != nil && batteryController != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery @@ -2279,7 +983,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController != nil && meterEnergy != nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity != nil && batteryController != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery @@ -2352,7 +1056,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController != nil && meterEnergy == nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity != nil && batteryController != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery @@ -2375,7 +1079,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController != nil && meterEnergy != nil && phaseCurrents == nil && phasePowers == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity != nil && batteryController != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery @@ -2460,56 +1164,6 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController != nil && meterEnergy == nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages == nil: - return &struct { - api.Meter - api.Battery - api.BatteryCapacity - api.BatteryController - api.PhasePowers - }{ - Meter: base, - Battery: &decorateMeterBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateMeterBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && meterEnergy != nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages == nil: - return &struct { - api.Meter - api.Battery - api.BatteryCapacity - api.BatteryController - api.MeterEnergy - api.PhasePowers - }{ - Meter: base, - Battery: &decorateMeterBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateMeterBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - MeterEnergy: &decorateMeterMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - } - case battery != nil && batteryCapacity != nil && batteryController != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter @@ -2568,64 +1222,6 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController != nil && meterEnergy == nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages != nil: - return &struct { - api.Meter - api.Battery - api.BatteryCapacity - api.BatteryController - api.PhasePowers - api.PhaseVoltages - }{ - Meter: base, - Battery: &decorateMeterBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateMeterBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && meterEnergy != nil && phaseCurrents == nil && phasePowers != nil && phaseVoltages != nil: - return &struct { - api.Meter - api.Battery - api.BatteryCapacity - api.BatteryController - api.MeterEnergy - api.PhasePowers - api.PhaseVoltages - }{ - Meter: base, - Battery: &decorateMeterBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateMeterBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateMeterBatteryControllerImpl{ - batteryController: batteryController, - }, - MeterEnergy: &decorateMeterMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhasePowers: &decorateMeterPhasePowersImpl{ - phasePowers: phasePowers, - }, - PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - case battery != nil && batteryCapacity != nil && batteryController != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter diff --git a/meter/powerwall_decorators.go b/meter/powerwall_decorators.go index daef29c618..6eb0fca3f5 100644 --- a/meter/powerwall_decorators.go +++ b/meter/powerwall_decorators.go @@ -8,10 +8,10 @@ import ( func decoratePowerWall(base *PowerWall, meterEnergy func() (float64, error), battery func() (float64, error), batteryCapacity func() float64, batteryController func(api.BatteryMode) error) api.Meter { switch { - case battery == nil && batteryCapacity == nil && batteryController == nil && meterEnergy == nil: + case battery == nil && meterEnergy == nil: return base - case battery == nil && batteryCapacity == nil && batteryController == nil && meterEnergy != nil: + case battery == nil && meterEnergy != nil: return &struct { *PowerWall api.MeterEnergy @@ -48,32 +48,6 @@ func decoratePowerWall(base *PowerWall, meterEnergy func() (float64, error), bat }, } - case battery == nil && batteryCapacity != nil && batteryController == nil && meterEnergy == nil: - return &struct { - *PowerWall - api.BatteryCapacity - }{ - PowerWall: base, - BatteryCapacity: &decoratePowerWallBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - } - - case battery == nil && batteryCapacity != nil && batteryController == nil && meterEnergy != nil: - return &struct { - *PowerWall - api.BatteryCapacity - api.MeterEnergy - }{ - PowerWall: base, - BatteryCapacity: &decoratePowerWallBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - MeterEnergy: &decoratePowerWallMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - case battery != nil && batteryCapacity != nil && batteryController == nil && meterEnergy == nil: return &struct { *PowerWall @@ -108,32 +82,6 @@ func decoratePowerWall(base *PowerWall, meterEnergy func() (float64, error), bat }, } - case battery == nil && batteryCapacity == nil && batteryController != nil && meterEnergy == nil: - return &struct { - *PowerWall - api.BatteryController - }{ - PowerWall: base, - BatteryController: &decoratePowerWallBatteryControllerImpl{ - batteryController: batteryController, - }, - } - - case battery == nil && batteryCapacity == nil && batteryController != nil && meterEnergy != nil: - return &struct { - *PowerWall - api.BatteryController - api.MeterEnergy - }{ - PowerWall: base, - BatteryController: &decoratePowerWallBatteryControllerImpl{ - batteryController: batteryController, - }, - MeterEnergy: &decoratePowerWallMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - case battery != nil && batteryCapacity == nil && batteryController != nil && meterEnergy == nil: return &struct { *PowerWall @@ -168,40 +116,6 @@ func decoratePowerWall(base *PowerWall, meterEnergy func() (float64, error), bat }, } - case battery == nil && batteryCapacity != nil && batteryController != nil && meterEnergy == nil: - return &struct { - *PowerWall - api.BatteryCapacity - api.BatteryController - }{ - PowerWall: base, - BatteryCapacity: &decoratePowerWallBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decoratePowerWallBatteryControllerImpl{ - batteryController: batteryController, - }, - } - - case battery == nil && batteryCapacity != nil && batteryController != nil && meterEnergy != nil: - return &struct { - *PowerWall - api.BatteryCapacity - api.BatteryController - api.MeterEnergy - }{ - PowerWall: base, - BatteryCapacity: &decoratePowerWallBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decoratePowerWallBatteryControllerImpl{ - batteryController: batteryController, - }, - MeterEnergy: &decoratePowerWallMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - case battery != nil && batteryCapacity != nil && batteryController != nil && meterEnergy == nil: return &struct { *PowerWall diff --git a/meter/rct_decorators.go b/meter/rct_decorators.go index ac210928c4..0f52cafe90 100644 --- a/meter/rct_decorators.go +++ b/meter/rct_decorators.go @@ -8,10 +8,10 @@ import ( func decorateRCT(base *RCT, meterEnergy func() (float64, error), battery func() (float64, error), batteryCapacity func() float64) api.Meter { switch { - case battery == nil && batteryCapacity == nil && meterEnergy == nil: + case battery == nil && meterEnergy == nil: return base - case battery == nil && batteryCapacity == nil && meterEnergy != nil: + case battery == nil && meterEnergy != nil: return &struct { *RCT api.MeterEnergy @@ -48,32 +48,6 @@ func decorateRCT(base *RCT, meterEnergy func() (float64, error), battery func() }, } - case battery == nil && batteryCapacity != nil && meterEnergy == nil: - return &struct { - *RCT - api.BatteryCapacity - }{ - RCT: base, - BatteryCapacity: &decorateRCTBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - } - - case battery == nil && batteryCapacity != nil && meterEnergy != nil: - return &struct { - *RCT - api.BatteryCapacity - api.MeterEnergy - }{ - RCT: base, - BatteryCapacity: &decorateRCTBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - MeterEnergy: &decorateRCTMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - case battery != nil && batteryCapacity != nil && meterEnergy == nil: return &struct { *RCT diff --git a/meter/sma_decorators.go b/meter/sma_decorators.go index ed940f027e..2c8d0d1555 100644 --- a/meter/sma_decorators.go +++ b/meter/sma_decorators.go @@ -8,7 +8,7 @@ import ( func decorateSMA(base *SMA, battery func() (float64, error), batteryCapacity func() float64) api.Meter { switch { - case battery == nil && batteryCapacity == nil: + case battery == nil: return base case battery != nil && batteryCapacity == nil: @@ -22,17 +22,6 @@ func decorateSMA(base *SMA, battery func() (float64, error), batteryCapacity fun }, } - case battery == nil && batteryCapacity != nil: - return &struct { - *SMA - api.BatteryCapacity - }{ - SMA: base, - BatteryCapacity: &decorateSMABatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - } - case battery != nil && batteryCapacity != nil: return &struct { *SMA