net.bican.iplib.IPAddressRangeComparator.java Source code

Java tutorial

Introduction

Here is the source code for net.bican.iplib.IPAddressRangeComparator.java

Source

/*
 * 
 * jiplib
 * https://github.com/canbican/jiplib
 * 
 * Copyright 2015 Can Bican <can@bican.net>
 * See the file 'LICENSE' in the distribution for licensing terms.
 * 
 */
package net.bican.iplib;

import java.util.Comparator;

import com.google.common.collect.Range;

class IPAddressRangeComparator implements Comparator<Range<IPAddress>> {

    private final static IPAddressRangeComparator instance = new IPAddressRangeComparator();

    @Override
    public int compare(Range<IPAddress> o1, Range<IPAddress> o2) {
        if (o1.equals(o2)) {
            return 0;
        }
        Range<IPAddress> oo1 = IPAddresses.canonical(o1, o1.lowerEndpoint().getDomain());
        Range<IPAddress> oo2 = IPAddresses.canonical(o2, o2.lowerEndpoint().getDomain());
        return oo1.lowerEndpoint().compareTo(oo2.lowerEndpoint());
    }

    private IPAddressRangeComparator() {
        // forbidden
    }

    public static Comparator<Range<IPAddress>> getComparator() {
        return instance;
    }

}