Top Description Fields Constructors Methods
io.netty.resolver.dns

public final Class NameServerComparator

extends Object
implements Comparator<InetSocketAddress>, Serializable
Class Inheritance
All Implemented Interfaces
java.io.Serializable, java.util.Comparator
Imports
io.netty.util.internal.ObjectUtil, java.io.Serializable, java.net.InetAddress, .InetSocketAddress, java.util.Comparator, .List

Special Comparator implementation to sort the nameservers to use when follow redirects. This implementation follows all the semantics listed in the Comparator apidocs with the limitation that InetSocketAddress#equals(Object) will not result in the same return value as compare(InetSocketAddress, InetSocketAddress). This is completely fine as this should only be used to sort Lists.

Field Summary

Modifier and TypeField and Description
private final Class<? extends InetAddress>
private static final long

Constructor Summary

AccessConstructor and Description
public
NameServerComparator(Class<? extends InetAddress> preferredAddressType)

Method Summary

Modifier and TypeMethod and Description
public int
compare(InetSocketAddress
the first object to be compared.
addr1
,
InetSocketAddress
the second object to be compared.
addr2
)

Implements java.util.Comparator.compare.

Compares its two arguments for order.
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

preferredAddressTypeback to summary
private final Class<? extends InetAddress> preferredAddressType
serialVersionUIDback to summary
private static final long serialVersionUID

Constructor Detail

NameServerComparatorback to summary
public NameServerComparator(Class<? extends InetAddress> preferredAddressType)

Method Detail

compareback to summary
public int compare(InetSocketAddress addr1, InetSocketAddress addr2)

Implements java.util.Comparator.compare.

Doc from java.util.Comparator.compare.

Compares its two arguments for order. Returns a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.

The implementor must ensure that signum(compare(x, y)) == -signum(compare(y, x)) for all x and y. (This implies that compare(x, y) must throw an exception if and only if compare(y, x) throws an exception.)

The implementor must also ensure that the relation is transitive: ((compare(x, y)>0) && (compare(y, z)>0)) implies compare(x, z)>0.

Finally, the implementor must ensure that compare(x, y)==0 implies that signum(compare(x, z))==signum(compare(y, z)) for all z.

Parameters
addr1:InetSocketAddress

the first object to be compared.

addr2:InetSocketAddress

the second object to be compared.

Returns:int

a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.

Annotations
@Override