-
public final class BaseDeepLinkDelegateKt
-
-
Method Summary
Modifier and Type Method Description final static Map<DeepLinkEntry, List<DeepLinkEntry>>duplicatedDeepLinkEntries(List<BaseRegistry> $self)This will get all entries from all the registries and return a list of deep links and how they are duplicated by other deep links. final static List<DeepLinkEntry>allDeepLinkEntries(List<BaseRegistry> $self)-
-
Method Detail
-
duplicatedDeepLinkEntries
final static Map<DeepLinkEntry, List<DeepLinkEntry>> duplicatedDeepLinkEntries(List<BaseRegistry> $self)
This will get all entries from all the registries and return a list of deep links and how they are duplicated by other deep links.
Deeplink duplicate detection during compilation onlyw roks for deep links that end up in the same registries but not across registries, so this can be used after a binary has been built and all registries inside the manifest are known to find potential duplicates.
With a lot of deep links and possible URL combinations this can be very compute intentive so this uses an optimized approach to save most of the compares needed to compare every entry to every other one:
Group entries by scheme + host + path segment count
Within each group, separate into concrete (no placeholders) and wildcard entries
Concrete entries with the same exact template are duplicates
Wildcard entries with the same structural pattern are definitely duplicates
Wildcard entries need to be compared against concrete entries that might match
This dramatically reduces comparisons by:
Concrete vs concrete: only exact matches (hash lookup)
Same-pattern wildcards: all are duplicates (no comparison needed)
Cross-pattern wildcards and concrete vs wildcard: still need templatesMatchesSameUrls
-
allDeepLinkEntries
final static List<DeepLinkEntry> allDeepLinkEntries(List<BaseRegistry> $self)
-
-
-
-