handlerForLink method
Tries to find LinkHandler in routeLinkHandlers
Implementation
LinkHandler? handlerForLink(String url) {
final uriPath = Uri.parse(
url.endsWith('/') ? url.substring(0, url.length - 1) : url,
);
final selectedRule = findDeclarationObject(uriPath.pathSegments);
if (selectedRule is! Map) {
return selectedRule;
}
final decisionSubroutes = findPossibleRoutes(
uriPath.queryParametersAll,
uriPath.fragment,
selectedRule,
);
if (decisionSubroutes.isEmpty) {
return selectedRule[''];
} else {
final latestSelected = findBestMatch(selectedRule, decisionSubroutes);
if (latestSelected is LinkHandler) {
return latestSelected;
}
// this must never happen
// coverage:ignore-start
return selectedRule[''];
// coverage:ignore-end
}
}