示例#1
0
 /**
  * {@inheritdoc}
  */
 public function checkIntegrity(ExecutionMetadataStateInterface $metadata_state, $apply_assertions = TRUE)
 {
     $violation_list = new IntegrityViolationList();
     if (empty($this->configuration['condition_id'])) {
         $violation_list->addViolationWithMessage($this->t('Condition plugin ID is missing'), $this->getUuid());
         return $violation_list;
     }
     if (!$this->conditionManager->hasDefinition($this->configuration['condition_id'])) {
         $violation_list->addViolationWithMessage($this->t('Condition plugin %plugin_id does not exist', ['%plugin_id' => $this->configuration['condition_id']]), $this->getUuid());
         return $violation_list;
     }
     $condition = $this->conditionManager->createInstance($this->configuration['condition_id'], ['negate' => $this->configuration['negate']]);
     // Prepare and refine the context before checking integrity, such that any
     // context definition changes are respected while checking.
     $this->prepareContextWithMetadata($condition, $metadata_state);
     $result = $this->checkContextConfigIntegrity($condition, $metadata_state);
     $this->prepareExecutionMetadataState($metadata_state, NULL, $apply_assertions);
     return $result;
 }