/** * {@inheritdoc} */ public function getConstraints() { $constraint_manager = $this->getTypedDataManager()->getValidationConstraintManager(); $constraints = array(); foreach ($this->definition->getConstraints() as $name => $options) { $constraints[] = $constraint_manager->create($name, $options); } return $constraints; }
/** * {@inheritdoc} */ public function getConstraints() { // @todo: Add the typed data manager as proper dependency. $constraint_manager = \Drupal::typedDataManager()->getValidationConstraintManager(); $constraints = array(); foreach ($this->definition->getConstraints() as $name => $options) { $constraints[] = $constraint_manager->create($name, $options); } return $constraints; }
/** * {@inheritdoc} */ public function getMatchingContexts(array $contexts, DataDefinitionInterface $definition) { return array_filter($contexts, function (ContextInterface $context) use($definition) { $context_definition = $context->getContextDefinition()->getDataDefinition(); // If the data types do not match, this context is invalid. if ($definition->getDataType() != $context_definition->getDataType()) { return FALSE; } // If any constraint does not match, this context is invalid. // @todo This is too restrictive, consider only relying on data types. foreach ($definition->getConstraints() as $constraint_name => $constraint) { if ($context_definition->getConstraint($constraint_name) != $constraint) { return FALSE; } } // All contexts with matching data type and contexts are valid. return TRUE; }); }
/** * {@inheritdoc} */ public function getConstraints() { return $this->wrappedProperty->getConstraints(); }