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; namespace Combodo\iTop\PropertyType\ValueType\Leaf;
use Combodo\iTop\DesignElement;
use Combodo\iTop\Forms\Block\Base\CheckboxFormBlock; use Combodo\iTop\Forms\Block\Base\CheckboxFormBlock;
use utils;
/** /**
* @since 3.3.0 * @since 3.3.0
@@ -18,4 +20,16 @@ class ValueTypeBoolean extends AbstractLeafValueType
{ {
return CheckboxFormBlock::class; 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; namespace Combodo\iTop\PropertyType\ValueType\Leaf;
use Combodo\iTop\DesignElement;
use Combodo\iTop\Forms\Block\Base\IntegerFormBlock; use Combodo\iTop\Forms\Block\Base\IntegerFormBlock;
/** /**
@@ -18,4 +19,16 @@ class ValueTypeInteger extends AbstractLeafValueType
{ {
return IntegerFormBlock::class; 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', 'class_property' => 'class_b',
], ],
], ],
'boolean_property' => true,
'integer_property' => 3,
], ],
'sPropertyTypeXML' => <<<XML 'sPropertyTypeXML' => <<<XML
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
@@ -316,6 +318,12 @@ XML,
</node> </node>
</prototype> </prototype>
</node> </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> </nodes>
</definition> </definition>
</property_type> </property_type>
@@ -337,6 +345,8 @@ XML,
<class_property>class_b</class_property> <class_property>class_b</class_property>
</item> </item>
</items> </items>
<boolean_property>true</boolean_property>
<integer_property>3</integer_property>
</root> </root>
XML, XML,
], ],