code: public function classOfPath($rootObject, $path)
      {
  
          $rootObject = $this->rootInstance($rootObject);
          $cacheId = $this->getCacheId($rootObject, $path);
  
          if (isset($this->cache[$cacheId])) {
              return $this->cache[$cacheId];
          }
  
          $parts = $this->parser->splitPath($path);
  
          $partCount = count($parts);
          $last = $partCount-1;
  
          $currentObject = $rootObject;
  
          for ($i=0; $i<$partCount; $i++) {
  
              $part = $parts[$i];
  
              $methodName = '';
  
              if (method_exists($currentObject, $part)) {
                  $methodName = $part;
              } else {
                  $camelMethod = camel_case($part);
                  if(method_exists($currentObject, $camelMethod)){
                      $methodName = $camelMethod;
                  }
              }
  
              if(!$methodName){
                  continue;
              }
  
              $reflectionMethod = new ReflectionMethod($currentObject, $methodName);
  
              if ($reflectionMethod->isStatic() || !$reflectionMethod->isPublic() ||
                  $reflectionMethod->isAbstract()) {
                  continue;
              }
  
  
              $relation = $currentObject->{$methodName}();
  
              if ($relation instanceof Relation) {
  
                  if (!$model = $relation->getQuery()->getModel()) {
                      continue;
                  }
  
                  if($i != $last){
                      $currentObject = $model;
                      continue;
                  }
  
                  $this->cache[$cacheId] = get_class($model);
                  return $this->cache[$cacheId];
              }
  
          }
  
          throw new UnexpectedValueException("$path does not point to an relation");
      }
docs: {@inheritdoc}
  
  @param string|object $rootObject The root object
  @param string $path The path relative from root
  @return string classname of class related by $path