Give an existing node the behaviour of the alarm its type says it is.
A node only becomes a working alarm when namespace.instantiateAlarmCondition builds it; a node
that arrived any other way - objectType.instantiate(), or a nodeset XML - carries the right
children but none of the machinery, so activateAlarm and signalNewCondition are simply not
there. This retypes the node in place, keeping its identity in the address space index and every
reference already pointing at it, and then runs the same initialization the factory runs.
Limit alarms are refused rather than half-promoted: their behaviour lives in UALimitAlarmImpl and its subclasses, and a node wearing the plain alarm prototype would look promoted while ignoring its own limit set points.
Optionaloptions: PromoteToAlarmOptions
Upgrading a node to the typed view of what it already is.
An alarm built by
objectType.instantiateor loaded from a nodeset has the children of an alarm and none of the behaviour; promoting it retypes the node in place and installs the machinerynamespace.instantiateAlarmConditionwould have installed.