You are here

protected function PropertiesBase::getFieldDataDefinition in Salesforce Suite 8.4

Same name and namespace in other branches
  1. 5.0.x modules/salesforce_mapping/src/Plugin/SalesforceMappingField/PropertiesBase.php \Drupal\salesforce_mapping\Plugin\SalesforceMappingField\PropertiesBase::getFieldDataDefinition()

Helper method to get the Data Definition for the current field.

Parameters

\Drupal\Core\Entity\EntityInterface $entity: The Entity to get the field from.

Return value

\Drupal\Core\TypedData\DataDefinitionInterface The Data Definition of the current field.

Overrides SalesforceMappingFieldPluginBase::getFieldDataDefinition

File

modules/salesforce_mapping/src/Plugin/SalesforceMappingField/PropertiesBase.php, line 189

Class

PropertiesBase
Base class for properties plugins.

Namespace

Drupal\salesforce_mapping\Plugin\SalesforceMappingField

Code

protected function getFieldDataDefinition(EntityInterface $entity) {
  if (!strpos($this
    ->config('drupal_field_value'), '.')) {
    return parent::getFieldDataDefinition($entity);
  }
  $data_definition = $this
    ->dataFetcher()
    ->fetchDefinitionByPropertyPath($entity
    ->getTypedData()
    ->getDataDefinition(), $this
    ->config('drupal_field_value'));
  if ($data_definition instanceof ListDataDefinitionInterface) {
    $data_definition = $data_definition
      ->getItemDefinition();
  }
  return $data_definition;
}