Serialization for boolean and integer

This commit is contained in:
Eric Espie
2026-01-22 16:02:47 +01:00
parent 7e91e01ad8
commit 1d100f1727
3 changed files with 37 additions and 0 deletions

View File

@@ -7,7 +7,9 @@
namespace Combodo\iTop\PropertyType\ValueType\Leaf;
use Combodo\iTop\DesignElement;
use Combodo\iTop\Forms\Block\Base\CheckboxFormBlock;
use utils;
/**
* @since 3.3.0
@@ -18,4 +20,16 @@ class ValueTypeBoolean extends AbstractLeafValueType
{
return CheckboxFormBlock::class;
}
public function DeserializeFromDOMNode(DesignElement $oDOMNode): mixed
{
$value = parent::DeserializeFromDOMNode($oDOMNode);
return utils::IsTrue($value);
}
public function SerializeToDOMNode(?string $sPropertyName, mixed $value, DesignElement $oDOMNode): void
{
parent::SerializeToDOMNode($sPropertyName, $value ? 'true' : 'false', $oDOMNode);
}
}

View File

@@ -7,6 +7,7 @@
namespace Combodo\iTop\PropertyType\ValueType\Leaf;
use Combodo\iTop\DesignElement;
use Combodo\iTop\Forms\Block\Base\IntegerFormBlock;
/**
@@ -18,4 +19,16 @@ class ValueTypeInteger extends AbstractLeafValueType
{
return IntegerFormBlock::class;
}
public function DeserializeFromDOMNode(DesignElement $oDOMNode): mixed
{
$value = parent::DeserializeFromDOMNode($oDOMNode);
return intval($value);
}
public function SerializeToDOMNode(?string $sPropertyName, mixed $value, DesignElement $oDOMNode): void
{
parent::SerializeToDOMNode($sPropertyName, "$value", $oDOMNode);
}
}

View File

@@ -283,6 +283,8 @@ XML,
'class_property' => 'class_b',
],
],
'boolean_property' => true,
'integer_property' => 3,
],
'sPropertyTypeXML' => <<<XML
<?xml version="1.0" encoding="UTF-8"?>
@@ -316,6 +318,12 @@ XML,
</node>
</prototype>
</node>
<node id="boolean_property" xsi:type="Combodo-ValueType-Boolean">
<label>Boolean</label>
</node>
<node id="integer_property" xsi:type="Combodo-ValueType-Integer">
<label>Integer</label>
</node>
</nodes>
</definition>
</property_type>
@@ -337,6 +345,8 @@ XML,
<class_property>class_b</class_property>
</item>
</items>
<boolean_property>true</boolean_property>
<integer_property>3</integer_property>
</root>
XML,
],