io.prestosql.jdbc.$internal.jackson.datatype.guava.deser.util.RangeFactory Maven / Gradle / Ivy
package io.prestosql.jdbc.$internal.jackson.datatype.guava.deser.util;
import io.prestosql.jdbc.$internal.guava.collect.BoundType;
import io.prestosql.jdbc.$internal.guava.collect.Range;
/**
* A factory for creating Guava {@link Range}s that is compatible with Guava 14 and later.
*
* NOTE: up until Jackson 2.9.x, supported versions from Guava 10 and higher; support for
* older versions dropped in Jackson 2.10.
*/
public class RangeFactory
{
public static > Range open(C lowerEndpoint, C upperEndpoint)
{
return range(lowerEndpoint, BoundType.OPEN, upperEndpoint, BoundType.OPEN);
}
public static > Range openClosed(C lowerEndpoint, C upperEndpoint)
{
return range(lowerEndpoint, BoundType.OPEN, upperEndpoint, BoundType.CLOSED);
}
public static > Range closedOpen(C lowerEndpoint, C upperEndpoint)
{
return range(lowerEndpoint, BoundType.CLOSED, upperEndpoint, BoundType.OPEN);
}
public static > Range closed(C lowerEndpoint, C upperEndpoint)
{
return range(lowerEndpoint, BoundType.CLOSED, upperEndpoint, BoundType.CLOSED);
}
public static > Range range(final C lowerEndpoint, final BoundType lowerBoundType,
final C upperEndpoint, final BoundType upperBoundType)
{
return Range.range(lowerEndpoint, lowerBoundType, upperEndpoint, upperBoundType);
}
public static > Range greaterThan(C lowerEndpoint)
{
return downTo(lowerEndpoint, BoundType.OPEN);
}
public static > Range atLeast(C lowerEndpoint)
{
return downTo(lowerEndpoint, BoundType.CLOSED);
}
public static > Range downTo(final C lowerEndpoint, final BoundType lowerBoundType)
{
return Range.downTo(lowerEndpoint, lowerBoundType);
}
public static > Range lessThan(C upperEndpoint)
{
return upTo(upperEndpoint, BoundType.OPEN);
}
public static > Range atMost(C upperEndpoint)
{
return upTo(upperEndpoint, BoundType.CLOSED);
}
public static > Range upTo(final C upperEndpoint, final BoundType upperBoundType)
{
return Range.upTo(upperEndpoint, upperBoundType);
}
public static > Range all()
{
return Range.all();
}
public static > Range singleton(final C value)
{
return Range.singleton(value);
}
// prevent instantiation
private RangeFactory() { }
}