DefaultFilter.php in Typed Data API enhancements 8
File
src/Plugin/TypedDataFilter/DefaultFilter.php
View source
<?php
namespace Drupal\typed_data\Plugin\TypedDataFilter;
use Drupal\Core\Render\BubbleableMetadata;
use Drupal\Core\TypedData\DataDefinitionInterface;
use Drupal\Core\TypedData\Type\StringInterface;
use Drupal\typed_data\DataFilterBase;
class DefaultFilter extends DataFilterBase {
public function filter(DataDefinitionInterface $definition, $value, array $arguments, BubbleableMetadata $bubbleable_metadata = NULL) {
return isset($value) ? $value : $arguments[0];
}
public function canFilter(DataDefinitionInterface $definition) {
return is_subclass_of($definition
->getClass(), StringInterface::class);
}
public function filtersTo(DataDefinitionInterface $definition, array $arguments) {
return $definition;
}
public function allowsNullValues() {
return TRUE;
}
public function getNumberOfRequiredArguments() {
return 1;
}
public function validateArguments(DataDefinitionInterface $definition, array $arguments) {
$errors = parent::validateArguments($definition, $arguments);
if (isset($arguments[0])) {
$violations = $this
->getTypedDataManager()
->create($definition, $arguments[0])
->validate();
foreach ($violations as $violation) {
$errors[] = $violation
->getMessage();
}
}
return $errors;
}
}
Classes
Name |
Description |
DefaultFilter |
A data filter providing a default value if no value is set. |