All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.aksw.commons.collection.rangeset.RangeSetOps Maven / Gradle / Ivy

There is a newer version: 0.9.9
Show newest version
package org.aksw.commons.collection.rangeset;

import com.google.common.base.Converter;
import com.google.common.collect.RangeSet;

/**
 * Operators that return actual RangeSet instances.
 * RangeSetUtils is only for Set views.
 */
public class RangeSetOps {

    public static > RangeSetUnion union(RangeSet first, RangeSet second) {
        return new RangeSetUnion<>(first, second);
    }

    public static , O extends Comparable> RangeSet convert(RangeSet rangeSet, Converter endpointConverter) {
        return new ConvertingRangeSet<>(rangeSet, endpointConverter);
    }


    /** Create a view of a shifted range set of longs where each endpoint has a constant (possibly negative) value added to it */
    public static RangeSet shiftLong(RangeSet rangeSet, long shiftValue) {
        return convert(rangeSet, Converter.from((Long v) -> v + shiftValue, (Long v) -> v - shiftValue));
    }
}