001/*
002 * Copyright 2015-2020 the original author or authors
003 *
004 * This software is licensed under the Apache License, Version 2.0,
005 * the GNU Lesser General Public License version 2 or later ("LGPL")
006 * and the WTFPL.
007 * You may choose either license to govern your use of this software only
008 * upon the condition that you accept all of the terms of either
009 * the Apache License 2.0, the LGPL 2.1+ or the WTFPL.
010 */
011package org.minidns.dnsserverlookup;
012
013import java.util.List;
014
015public interface DnsServerLookupMechanism extends Comparable<DnsServerLookupMechanism> {
016
017    String getName();
018
019    int getPriority();
020
021    boolean isAvailable();
022
023    /**
024     * Returns a List of String representing ideally IP addresses. The list must be modifiable.
025     * <p>
026     * Note that the lookup mechanisms are not required to assure that only IP addresses are returned. This verification is performed in
027     * when using {@link org.minidns.DnsClient#findDNS()}.
028     * </p>
029     *
030     * @return a List of Strings presenting hopefully IP addresses.
031     */
032    List<String> getDnsServerAddresses();
033
034}