Added Signal elements to PhysicalInterface elements in TDFs
This commit is contained in:
@@ -191,7 +191,28 @@ class FromXmlService
|
||||
public function physicalInterfaceFromElement(DOMElement $element): PhysicalInterface
|
||||
{
|
||||
$attributes = $this->getNodeAttributesByName($element);
|
||||
return new PhysicalInterface($attributes['value'] ?? null);
|
||||
|
||||
$output = new PhysicalInterface($attributes['value'] ?? null, []);
|
||||
|
||||
$signalsElements = $element->getElementsByTagName('signals');
|
||||
if ($signalsElements->count() > 1) {
|
||||
throw new XmlParsingException('Unexpected number of "signals" elements');
|
||||
}
|
||||
|
||||
$signalElement = $signalsElements->item(0);
|
||||
if ($signalElement instanceof DOMElement) {
|
||||
foreach ($signalElement->childNodes as $childNode) {
|
||||
if (!$childNode instanceof DOMElement) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($childNode->nodeName === 'signal') {
|
||||
$output->signals[] = $this->signalFromElement($childNode);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
public function moduleFromElement(DOMElement $element): Module
|
||||
|
||||
@@ -132,6 +132,15 @@ class ToXmlService
|
||||
$element = $document->createElement('physical-interface');
|
||||
$element->setAttribute('value', $physicalInterface->value);
|
||||
|
||||
if (!empty($physicalInterface->signals)) {
|
||||
$signalsElement = $document->createElement('signals');
|
||||
foreach ($physicalInterface->signals as $signal) {
|
||||
$signalsElement->append($this->signalToXml($signal, $document));
|
||||
}
|
||||
|
||||
$element->append($signalsElement);
|
||||
}
|
||||
|
||||
return $element;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user