original_string: public function getTypeDescendants(
          $repositoryId,
          $typeId = null,
          $depth = null,
          $includePropertyDefinitions = false,
          ExtensionDataInterface $extension = null
      ) {
          $url = $this->getRepositoryUrl($repositoryId, Constants::SELECTOR_TYPE_DESCENDANTS);
          $url->getQuery()->modify(
              [
                  Constants::PARAM_PROPERTY_DEFINITIONS => $includePropertyDefinitions ? 'true' : 'false',
                  Constants::PARAM_DATETIME_FORMAT => (string) $this->getDateTimeFormat()
              ]
          );
  
          if ($typeId !== null) {
              $url->getQuery()->modify([Constants::PARAM_TYPE_ID => $typeId]);
          }
  
          if ($depth !== null) {
              $url->getQuery()->modify([Constants::PARAM_DEPTH => $depth]);
          }
  
          $responseData = (array) $this->readJson($url);
  
          return $this->getJsonConverter()->convertTypeDescendants($responseData);
      }
code: public function getTypeDescendants(
          $repositoryId,
          $typeId = null,
          $depth = null,
          $includePropertyDefinitions = false,
          ExtensionDataInterface $extension = null
      ) {
          $url = $this->getRepositoryUrl($repositoryId, Constants::SELECTOR_TYPE_DESCENDANTS);
          $url->getQuery()->modify(
              [
                  Constants::PARAM_PROPERTY_DEFINITIONS => $includePropertyDefinitions ? 'true' : 'false',
                  Constants::PARAM_DATETIME_FORMAT => (string) $this->getDateTimeFormat()
              ]
          );
  
          if ($typeId !== null) {
              $url->getQuery()->modify([Constants::PARAM_TYPE_ID => $typeId]);
          }
  
          if ($depth !== null) {
              $url->getQuery()->modify([Constants::PARAM_DEPTH => $depth]);
          }
  
          $responseData = (array) $this->readJson($url);
  
          return $this->getJsonConverter()->convertTypeDescendants($responseData);
      }
code_tokens: public function getTypeDescendants ( $ repositoryId , $ typeId = null , $ depth = null , $ includePropertyDefinitions = false , ExtensionDataInterface $ extension = null ) { $ url = $ this -> getRepositoryUrl ( $ repositoryId , Constants :: SELECTOR_TYPE_DESCENDANTS ) ; $ url -> getQuery ( ) -> modify ( [ Constants :: PARAM_PROPERTY_DEFINITIONS => $ includePropertyDefinitions ? 'true' : 'false' , Constants :: PARAM_DATETIME_FORMAT => ( string ) $ this -> getDateTimeFormat ( ) ] ) ; if ( $ typeId !== null ) { $ url -> getQuery ( ) -> modify ( [ Constants :: PARAM_TYPE_ID => $ typeId ] ) ; } if ( $ depth !== null ) { $ url -> getQuery ( ) -> modify ( [ Constants :: PARAM_DEPTH => $ depth ] ) ; } $ responseData = ( array ) $ this -> readJson ( $ url ) ; return $ this -> getJsonConverter ( ) -> convertTypeDescendants ( $ responseData ) ; }
docstring: Returns the set of descendant object type defined for the repository under the specified type.
  
  @param string $repositoryId repositoryId - the identifier for the repository
  @param string|null $typeId the typeId of an object type specified in the repository
  (if not specified the repository MUST return all types and MUST ignore the value of the depth parameter)
  @param integer|null $depth the number of levels of depth in the type hierarchy from which
  to return results (default is repository specific)
  @param boolean $includePropertyDefinitions if <code>true</code> the repository MUST return the property
  definitions for each object type returned (default is <code>false</code>)
  @param ExtensionDataInterface|null $extension
  @return TypeDefinitionContainerInterface[]
docstring_tokens: Returns the set of descendant object type defined for the repository under the specified type .