View source
<?php
namespace Drupal\module_builder_test_component_type;
use DrupalCodeBuilder\Definition\GeneratorDefinition;
use DrupalCodeBuilder\Definition\PropertyDefinition;
use DrupalCodeBuilder\MutableTypedData\DrupalCodeBuilderDataItemFactory;
use DrupalCodeBuilder\Task\Generate;
use MutableTypedData\Definition\DataDefinition as BasePropertyDefinition;
use MutableTypedData\Definition\DefinitionProviderInterface;
class TestGenerateTask extends Generate implements DefinitionProviderInterface {
public function getRootComponentData($component_type = 'module') {
$data = DrupalCodeBuilderDataItemFactory::createFromProvider(static::class);
return $data;
}
public static function getDefinition() : BasePropertyDefinition {
$definition = GeneratorDefinition::createFromGeneratorType('module', 'complex');
$definition
->addProperty(PropertyDefinition::create('string')
->setName('root_name')
->setLabel('Extension machine name'));
$definition
->addProperty(PropertyDefinition::create('string')
->setName('readable_name')
->setLabel('Extension readable name'));
$array_property_info = static::getInfoArray();
\DrupalCodeBuilder\Generator\BaseGenerator::addArrayPropertyInfoToDefinition($definition, $array_property_info);
$definition
->setName('module');
return $definition;
}
public static function getInfoArray() {
return [
'short_description' => [
'label' => 'Description',
'default' => '',
'format' => 'string',
'required' => FALSE,
],
'module_package' => [
'label' => 'Description',
'default' => '',
'format' => 'string',
'required' => FALSE,
],
'module_dependencies' => [
'label' => 'Description',
'default' => '',
'format' => 'string',
'required' => FALSE,
],
'string_empty' => [
'label' => 'String empty',
'default' => '',
'format' => 'string',
'required' => FALSE,
],
'string_default' => [
'label' => 'String default',
'default' => 'default value',
'format' => 'string',
'required' => FALSE,
],
'checkbox_empty' => [
'label' => "Checkbox empty",
'required' => FALSE,
'default' => FALSE,
'format' => 'boolean',
],
'checkbox_default' => [
'label' => "Checkbox default",
'required' => FALSE,
'default' => TRUE,
'format' => 'boolean',
],
'array_empty' => [
'label' => 'Array empty',
'default' => [],
'format' => 'array',
'required' => FALSE,
],
'array_default' => [
'label' => 'Array default',
'default' => [
'value 1',
'value 2',
],
'format' => 'array',
'required' => FALSE,
],
'compound_empty' => [
'label' => 'Compound empty',
'format' => 'compound',
'required' => FALSE,
'properties' => [
'one' => [
'label' => 'One',
'required' => TRUE,
'format' => 'string',
],
'two' => [
'label' => 'Two',
'required' => FALSE,
'format' => 'string',
],
],
],
];
}
}