getRoot() public method

public getRoot ( )
 /**
  * Process violation
  *
  * @param ConstraintViolation $violation
  *
  * @return void
  */
 private function processViolation(ConstraintViolation $violation)
 {
     $id = $violation->getRoot() instanceof CrudEntityInterface ? $violation->getRoot()->getPrimaryKey() : null;
     $errors = $this->getEntityErrors($id);
     $context = $this->determineContext($violation);
     $error = new Error($violation->getMessage(), $violation->getCode(), $violation->getPropertyPath(), $context);
     $errors->add($error);
     $this->errors->set($id, $errors);
 }
 /**
  * {@inheritdoc}
  */
 public function filterByFields(array $field_names)
 {
     $this->groupViolationOffsets();
     $new_violations = [];
     foreach (array_intersect_key($this->violationOffsetsByField, array_flip($field_names)) as $field_name => $offsets) {
         foreach ($offsets as $offset) {
             $violation = $this->get($offset);
             // Take care of composite field violations and re-map them to some
             // covered field if necessary.
             if ($violation->getConstraint() instanceof CompositeConstraintBase) {
                 $covered_fields = $violation->getConstraint()->coversFields();
                 // Keep the composite field if it covers some remaining field and put
                 // a violation on some other covered field instead.
                 if ($remaining_fields = array_diff($covered_fields, $field_names)) {
                     $message_params = ['%field_name' => $field_name];
                     $violation = new ConstraintViolation($this->t('The validation failed because the value conflicts with the value in %field_name, which you cannot access.', $message_params), 'The validation failed because the value conflicts with the value in %field_name, which you cannot access.', $message_params, $violation->getRoot(), reset($remaining_fields), $violation->getInvalidValue(), $violation->getPlural(), $violation->getCode(), $violation->getConstraint(), $violation->getCause());
                     $new_violations[] = $violation;
                 }
             }
             $this->remove($offset);
         }
     }
     foreach ($new_violations as $violation) {
         $this->add($violation);
     }
     return $this;
 }