| 666 | } |
| 667 | |
| 668 | bool RefrigerationSystem_Impl::setMechanicalSubcooler(const boost::optional<RefrigerationSubcoolerMechanical>& refrigerationSubcoolerMechanical) { |
| 669 | bool result(false); |
| 670 | if (refrigerationSubcoolerMechanical) { |
| 671 | // Enforce unicity |
| 672 | if (boost::optional<RefrigerationSystem> currentSystem = refrigerationSubcoolerMechanical->system()) { |
| 673 | LOG(Warn, refrigerationSubcoolerMechanical->briefDescription() |
| 674 | << " was removed from its existing RefrigerationSystem named '" << currentSystem->nameString() << "'."); |
| 675 | currentSystem->resetMechanicalSubcooler(); |
| 676 | } |
| 677 | result = setPointer(OS_Refrigeration_SystemFields::MechanicalSubcoolerName, refrigerationSubcoolerMechanical.get().handle()); |
| 678 | } else { |
| 679 | resetMechanicalSubcooler(); |
| 680 | result = true; |
| 681 | } |
| 682 | return result; |
| 683 | } |
| 684 | |
| 685 | void RefrigerationSystem_Impl::resetMechanicalSubcooler() { |
| 686 | bool result = setString(OS_Refrigeration_SystemFields::MechanicalSubcoolerName, ""); |