N°8772 - test driven compiler wip

This commit is contained in:
Eric Espie
2025-12-05 16:53:02 +01:00
parent 8374d12869
commit 0d3f7c5f07
25 changed files with 334 additions and 24 deletions

View File

@@ -7,10 +7,17 @@
namespace Combodo\iTop\PropertyTree\ValueType;
use Combodo\iTop\DesignElement;
/**
* @since 3.3.0
*/
abstract class AbstractValueType
{
abstract public function getFormBlockClass(): string;
abstract public function GetFormBlockClass(): string;
public function InitFromDomNode(DesignElement $oDomNode): void
{
}
}

View File

@@ -14,7 +14,7 @@ use Combodo\iTop\Forms\Block\DataModel\Dashlet\AggregateFunctionFormBlock;
*/
class ValueTypeAggregateFunction extends AbstractValueType
{
public function getFormBlockClass(): string
public function GetFormBlockClass(): string
{
return AggregateFunctionFormBlock::class;
}

View File

@@ -15,7 +15,7 @@ use Combodo\iTop\Forms\Block\Base\FormBlock;
*/
class ValueTypeChoice extends AbstractValueType
{
public function getFormBlockClass(): string
public function GetFormBlockClass(): string
{
return ChoiceFormBlock::class;
}

View File

@@ -0,0 +1,19 @@
<?php
/*
* @copyright Copyright (C) 2010-2025 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/
namespace Combodo\iTop\PropertyTree\ValueType;
use Combodo\iTop\Forms\Block\Base\TextFormBlock;
use Combodo\iTop\PropertyTree\ValueType\AbstractValueType;
class ValueTypeClass extends AbstractValueType
{
public function GetFormBlockClass(): string
{
return TextFormBlock::class;
}
}

View File

@@ -14,7 +14,7 @@ use Combodo\iTop\Forms\Block\DataModel\AttributeChoiceFormBlock;
*/
class ValueTypeClassAttribute extends AbstractValueType
{
public function getFormBlockClass(): string
public function GetFormBlockClass(): string
{
return AttributeChoiceFormBlock::class;
}

View File

@@ -14,7 +14,7 @@ use Combodo\iTop\Forms\Block\DataModel\Dashlet\ClassAttributeGroupByFormBlock;
*/
class ValueTypeClassAttributeGroupBy extends AbstractValueType
{
public function getFormBlockClass(): string
public function GetFormBlockClass(): string
{
return ClassAttributeGroupByFormBlock::class;
}

View File

@@ -14,7 +14,7 @@ use Combodo\iTop\Forms\Block\DataModel\AttributeValueChoiceFormBlock;
*/
class ValueTypeClassAttributeValue extends AbstractValueType
{
public function getFormBlockClass(): string
public function GetFormBlockClass(): string
{
return AttributeValueChoiceFormBlock::class;
}

View File

@@ -0,0 +1,45 @@
<?php
/*
* @copyright Copyright (C) 2010-2025 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/
namespace Combodo\iTop\PropertyTree\ValueType;
use Combodo\iTop\DesignElement;
use Combodo\iTop\PropertyTree\AbstractProperty;
use Combodo\iTop\PropertyTree\PropertyTreeException;
use DOMElement;
class ValueTypeFactory
{
private static ValueTypeFactory $oInstance;
protected function __construct()
{
}
final public static function GetInstance(): ValueTypeFactory
{
if (!isset(static::$oInstance)) {
static::$oInstance = new ValueTypeFactory();
}
return static::$oInstance;
}
public function CreateValueTypeFromDomNode(DesignElement $oDomNode): AbstractValueType
{
$sNodeType = $oDomNode->getAttribute('xsi:type');
if (is_a($sNodeType, AbstractValueType::class, true)) {
$oNode = new $sNodeType();
$oNode->InitFromDomNode($oDomNode);
return $oNode;
}
throw new PropertyTreeException('Unknown value-type node class: '.json_encode($sNodeType));
}
}

View File

@@ -14,7 +14,7 @@ use Combodo\iTop\Forms\Block\Base\IntegerFormBlock;
*/
class ValueTypeInteger extends AbstractValueType
{
public function getFormBlockClass(): string
public function GetFormBlockClass(): string
{
return IntegerFormBlock::class;
}

View File

@@ -14,7 +14,7 @@ use Combodo\iTop\Forms\Block\DataModel\LabelFormBlock;
*/
class ValueTypeLabel extends AbstractValueType
{
public function getFormBlockClass(): string
public function GetFormBlockClass(): string
{
return LabelFormBlock::class;
}

View File

@@ -14,7 +14,7 @@ use Combodo\iTop\Forms\Block\DataModel\OqlFormBlock;
*/
class ValueTypeOQL extends AbstractValueType
{
public function getFormBlockClass(): string
public function GetFormBlockClass(): string
{
return OqlFormBlock::class;
}

View File

@@ -12,7 +12,7 @@ namespace Combodo\iTop\PropertyTree\ValueType;
*/
class ValueTypeProfileName extends AbstractValueType
{
public function getFormBlockClass(): string
public function GetFormBlockClass(): string
{
return '';
}