original_string: public function join($name, $value, $separator = null)
      {
          $separator = $separator ?? '.';
          $old = $this->get($name, null, $separator);
          if ($old !== null) {
              if (!\is_array($old)) {
                  throw new \RuntimeException('Value ' . $old);
              }
  
              if (\is_object($value)) {
                  $value = (array) $value;
              } elseif (!\is_array($value)) {
                  throw new \RuntimeException('Value ' . $value);
              }
  
              $value = $this->getBlueprint()->mergeData($old, $value, $name, $separator);
          }
  
          $this->set($name, $value, $separator);
  
          return $this;
      }
code: public function join($name, $value, $separator = null)
      {
          $separator = $separator ?? '.';
          $old = $this->get($name, null, $separator);
          if ($old !== null) {
              if (!\is_array($old)) {
                  throw new \RuntimeException('Value ' . $old);
              }
  
              if (\is_object($value)) {
                  $value = (array) $value;
              } elseif (!\is_array($value)) {
                  throw new \RuntimeException('Value ' . $value);
              }
  
              $value = $this->getBlueprint()->mergeData($old, $value, $name, $separator);
          }
  
          $this->set($name, $value, $separator);
  
          return $this;
      }
code_tokens: public function join ( $ name , $ value , $ separator = null ) { $ separator = $ separator ?? '.' ; $ old = $ this -> get ( $ name , null , $ separator ) ; if ( $ old !== null ) { if ( ! \ is_array ( $ old ) ) { throw new \ RuntimeException ( 'Value ' . $ old ) ; } if ( \ is_object ( $ value ) ) { $ value = ( array ) $ value ; } elseif ( ! \ is_array ( $ value ) ) { throw new \ RuntimeException ( 'Value ' . $ value ) ; } $ value = $ this -> getBlueprint ( ) -> mergeData ( $ old , $ value , $ name , $ separator ) ; } $ this -> set ( $ name , $ value , $ separator ) ; return $ this ; }
docstring: Join nested values together by using blueprints.
  
  @param string  $name       Dot separated path to the requested value.
  @param mixed   $value      Value to be joined.
  @param string  $separator  Separator, defaults to '.'
  @return $this
  @throws \RuntimeException
docstring_tokens: Join nested values together by using blueprints .