🎨 Add automatic class return type to MetaModel::GetObject() and MetaModel::NewObject()

This commit is contained in:
Eric Espie
2025-12-18 17:24:20 +01:00
parent 49e58692e3
commit f010476923
19 changed files with 459 additions and 218 deletions

View File

@@ -9,6 +9,10 @@ namespace Combodo\iTop\PropertyTree;
use Combodo\iTop\DesignElement;
use Combodo\iTop\Forms\Block\Base\CollectionBlock;
use Combodo\iTop\PropertyTree\CollectionType\AbstractCollectionType;
use Combodo\iTop\PropertyTree\CollectionType\CollectionTypeFactory;
use Combodo\iTop\PropertyTree\ValueType\AbstractValueType;
use Combodo\iTop\PropertyTree\ValueType\ValueTypeFactory;
/**
* @since 3.3.0
@@ -16,6 +20,7 @@ use Combodo\iTop\Forms\Block\Base\CollectionBlock;
class CollectionOfTrees extends AbstractProperty
{
protected ?string $sButtonLabel;
protected ?AbstractCollectionType $oCollectionType;
/**
* @inheritDoc
@@ -27,6 +32,13 @@ class CollectionOfTrees extends AbstractProperty
$this->sButtonLabel = $oDomNode->GetChildText('button-label');
$oCollectionTypeNode = $oDomNode->GetOptionalElement('collection-type');
if ($oCollectionTypeNode) {
$this->oCollectionType = CollectionTypeFactory::GetInstance()->CreateCollectionTypeFromDomNode($oCollectionTypeNode);
} else {
throw new PropertyTreeException("Node: {$this->sId}, missing collection-type in node specification");
}
// read child properties
foreach ($oDomNode->GetUniqueElement('prototype')->childNodes as $oNode) {
if ($oNode instanceof DesignElement) {