public List<String> getSortedMatches(final String hostName) { final List<String> matches = findPrefixMatches(hostName); final List<ScoredHost> scored = scoreMatches(matches); final List<ScoredHost> sorted = sortScoredHosts(scored); final ImmutableList.Builder<String> builder = ImmutableList.builder(); for (final ScoredHost host : sorted) { builder.add(host.host); } return builder.build(); }
String resolveName(final String host) { // passed FQDN, all set if (allHosts.contains(host)) { return host; } final List<String> matches = findPrefixMatches(host); if (matches.isEmpty()) { return host; // no pfx matches, let it fail upstream } if (matches.size() == 1) { return matches.iterator().next(); } final List<ScoredHost> scored = scoreMatches(matches); final List<ScoredHost> sorted = sortScoredHosts(scored); final List<String> minScoreHosts = findMatchesWithLowestScore(sorted); if (minScoreHosts.size() > 1) { // ambiguous, just return it and let it fail upstream return host; } return minScoreHosts.get(0); }
public List<String> getSortedMatches(final String hostName) { final List<String> matches = findPrefixMatches(hostName); final List<ScoredHost> scored = scoreMatches(matches); final List<ScoredHost> sorted = sortScoredHosts(scored); final ImmutableList.Builder<String> builder = ImmutableList.builder(); for (final ScoredHost host : sorted) { builder.add(host.host); } return builder.build(); }
String resolveName(final String host) { // passed FQDN, all set if (allHosts.contains(host)) { return host; } final List<String> matches = findPrefixMatches(host); if (matches.isEmpty()) { return host; // no pfx matches, let it fail upstream } if (matches.size() == 1) { return matches.iterator().next(); } final List<ScoredHost> scored = scoreMatches(matches); final List<ScoredHost> sorted = sortScoredHosts(scored); final List<String> minScoreHosts = findMatchesWithLowestScore(sorted); if (minScoreHosts.size() > 1) { // ambiguous, just return it and let it fail upstream return host; } return minScoreHosts.get(0); }