You are here

public function DataProviderManager::getDataProviderByFieldDefinition in Geolocation Field 8.2

Same name and namespace in other branches
  1. 8.3 src/DataProviderManager.php \Drupal\geolocation\DataProviderManager::getDataProviderByFieldDefinition()

Return DataProvider by field type.

Parameters

\Drupal\Core\Field\FieldDefinitionInterface $fieldDefinition: Field definition.

array $configuration: Configuration.

Return value

\Drupal\geolocation\DataProviderInterface|false Data provider.

File

src/DataProviderManager.php, line 77

Class

DataProviderManager
Search plugin manager.

Namespace

Drupal\geolocation

Code

public function getDataProviderByFieldDefinition(FieldDefinitionInterface $fieldDefinition, array $configuration = []) {
  $definitions = $this
    ->getDefinitions();
  try {
    foreach ($definitions as $dataProviderId => $dataProviderDefinition) {

      /** @var \Drupal\geolocation\DataProviderInterface $dataProvider */
      $dataProvider = $this
        ->createInstance($dataProviderId, $configuration);
      if ($dataProvider
        ->isFieldGeoOption($fieldDefinition)) {
        $dataProvider
          ->setFieldDefinition($fieldDefinition);
        return $dataProvider;
      }
    }
  } catch (\Exception $e) {
    return FALSE;
  }
  return FALSE;
}