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);
    }
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);
    }
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 ) ; }
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[]
Returns the set of descendant object type defined for the repository under the specified type .