NOLINTBEGIN(readability-function-size, bugprone-branch-clone)
| 699 | |
| 700 | // NOLINTBEGIN(readability-function-size, bugprone-branch-clone) |
| 701 | boost::optional<IdfObject> ForwardTranslator::translateAndMapModelObject(ModelObject& modelObject) { |
| 702 | boost::optional<IdfObject> retVal; |
| 703 | |
| 704 | // if already translated then exit |
| 705 | auto objInMapIt = m_map.find(modelObject.handle()); |
| 706 | if (objInMapIt != m_map.end()) { |
| 707 | return boost::optional<IdfObject>(objInMapIt->second); |
| 708 | } |
| 709 | |
| 710 | LOG(Trace, "Translating " << modelObject.briefDescription() << "."); |
| 711 | |
| 712 | switch (modelObject.iddObject().type().value()) { |
| 713 | case openstudio::IddObjectType::OS_AdditionalProperties: { |
| 714 | // no op |
| 715 | break; |
| 716 | } |
| 717 | case openstudio::IddObjectType::OS_AirConditioner_VariableRefrigerantFlow: { |
| 718 | auto vrf = modelObject.cast<AirConditionerVariableRefrigerantFlow>(); |
| 719 | retVal = translateAirConditionerVariableRefrigerantFlow(vrf); |
| 720 | break; |
| 721 | } |
| 722 | case openstudio::IddObjectType::OS_AirConditioner_VariableRefrigerantFlow_FluidTemperatureControl: { |
| 723 | model::AirConditionerVariableRefrigerantFlowFluidTemperatureControl vrf = |
| 724 | modelObject.cast<AirConditionerVariableRefrigerantFlowFluidTemperatureControl>(); |
| 725 | retVal = translateAirConditionerVariableRefrigerantFlowFluidTemperatureControl(vrf); |
| 726 | break; |
| 727 | } |
| 728 | case openstudio::IddObjectType::OS_AirConditioner_VariableRefrigerantFlow_FluidTemperatureControl_HR: { |
| 729 | model::AirConditionerVariableRefrigerantFlowFluidTemperatureControlHR vrf = |
| 730 | modelObject.cast<AirConditionerVariableRefrigerantFlowFluidTemperatureControlHR>(); |
| 731 | retVal = translateAirConditionerVariableRefrigerantFlowFluidTemperatureControlHR(vrf); |
| 732 | break; |
| 733 | } |
| 734 | case openstudio::IddObjectType::OS_AirLoopHVAC: { |
| 735 | auto airLoopHVAC = modelObject.cast<AirLoopHVAC>(); |
| 736 | retVal = translateAirLoopHVAC(airLoopHVAC); |
| 737 | break; |
| 738 | } |
| 739 | case openstudio::IddObjectType::OS_AirLoopHVAC_ReturnPlenum: { |
| 740 | auto airLoopHVACReturnPlenum = modelObject.cast<AirLoopHVACReturnPlenum>(); |
| 741 | retVal = translateAirLoopHVACReturnPlenum(airLoopHVACReturnPlenum); |
| 742 | break; |
| 743 | } |
| 744 | case openstudio::IddObjectType::OS_AirLoopHVAC_SupplyPlenum: { |
| 745 | auto airLoopHVACSupplyPlenum = modelObject.cast<AirLoopHVACSupplyPlenum>(); |
| 746 | retVal = translateAirLoopHVACSupplyPlenum(airLoopHVACSupplyPlenum); |
| 747 | break; |
| 748 | } |
| 749 | case openstudio::IddObjectType::OS_AirTerminal_DualDuct_ConstantVolume: { |
| 750 | auto mo = modelObject.cast<AirTerminalDualDuctConstantVolume>(); |
| 751 | retVal = translateAirTerminalDualDuctConstantVolume(mo); |
| 752 | break; |
| 753 | } |
| 754 | case openstudio::IddObjectType::OS_AirTerminal_DualDuct_VAV: { |
| 755 | auto mo = modelObject.cast<AirTerminalDualDuctVAV>(); |
| 756 | retVal = translateAirTerminalDualDuctVAV(mo); |
| 757 | break; |
| 758 | } |
no test coverage detected