lib/components/web/browser/HandlerTypes.php
public static function descendantHas($topType, $goodTypes, $depth = 3)
    {
        $possibleTypes = [];
        foreach ($topType->collectorItem->children as $relationship) {
            $testType = $relationship->child;
            if (in_array($testType->systemId, $goodTypes)) {
                return true;
            } elseif ($depth > 0 && self::descendantHas($testType, $goodTypes, $depth-1)) {
                return true;
            }
        }

        return false;
    }
public static function descendantHas($topType, $goodTypes, $depth = 3)
    {
        $possibleTypes = [];
        foreach ($topType->collectorItem->children as $relationship) {
            $testType = $relationship->child;
            if (in_array($testType->systemId, $goodTypes)) {
                return true;
            } elseif ($depth > 0 && self::descendantHas($testType, $goodTypes, $depth-1)) {
                return true;
            }
        }

        return false;
    }
public static function descendantHas ( $ topType , $ goodTypes , $ depth = 3 ) { $ possibleTypes = [ ] ; foreach ( $ topType -> collectorItem -> children as $ relationship ) { $ testType = $ relationship -> child ; if ( in_array ( $ testType -> systemId , $ goodTypes ) ) { return true ; } elseif ( $ depth > 0 && self :: descendantHas ( $ testType , $ goodTypes , $ depth - 1 ) ) { return true ; } } return false ; }
[[@doctodo method_description:descendantHas]].

@param [[@doctodo param_type:topType]]   $topType   [[@doctodo param_description:topType]]
@param [[@doctodo param_type:goodTypes]] $goodTypes [[@doctodo param_description:goodTypes]]
@param integer                           $depth     [[@doctodo param_description:depth]] [optional]

@return [[@doctodo return_type:descendantHas]] [[@doctodo return_description:descendantHas]]
[[ @doctodo method_description : descendantHas ]] .