You are here

protected function WebformDevelSchema::getDefinition in Webform 6.x

Get webform element schema.

Parameters

\Drupal\Core\Field\BaseFieldDefinition $definition: A webform submission base field definition.

Return value

array An array containing the schema for a webform submission base field definition.

1 call to WebformDevelSchema::getDefinition()
WebformDevelSchema::getElements in modules/webform_devel/src/WebformDevelSchema.php
Get a webform's scheme elements.

File

modules/webform_devel/src/WebformDevelSchema.php, line 130

Class

WebformDevelSchema
Provides a webform schema generator.

Namespace

Drupal\webform_devel

Code

protected function getDefinition(BaseFieldDefinition $definition) {
  $data = [];

  // Name.
  $data['name'] = $definition
    ->getName();

  // Title.
  $data['title'] = $definition
    ->getName();

  // Element type.
  $data['type'] = $definition
    ->getType();

  // Datatype.
  $datatype = '';
  switch ($definition
    ->getType()) {
    case 'created':
    case 'changed':
    case 'completed':
    case 'timestamp':
      $datatype = 'Timestamp';
      break;
    case 'language':
    case 'string':
    case 'uuid':
    case 'entity_reference':
      $datatype = 'Text';
      break;
    case 'string_long':
      $datatype = 'Blob';
      break;
    case 'integer':
      $datatype = 'Number';
      break;
    case 'boolean':
      $datatype = 'Boolean';
      break;
  }
  $data['datatype'] = $datatype;

  // Maxlength.
  $maxlength = $definition
    ->getSetting('max_length');
  switch ($datatype) {
    case 'Blob':
      $maxlength = 'Unlimited';
  }
  $data['maxlength'] = $maxlength;

  // Required.
  $data['required'] = '';

  // Multiple.
  $data['multiple'] = $definition
    ->getCardinality();

  // Options.
  $data['options'] = [];
  return $data;
}