@SuppressWarnings({"rawtypes", "unchecked"})
    public Range<T> union(final Range other) {
        return new Range(this.from.longValue() < other.from.longValue()
                ? this.from
                : other.from,
                this.to.longValue() > other.to.longValue()
                        ? this.to
                        : other.to);

    }
Are we empty ? i.e. the lower bound is the same as the upper one.
stroom-util-shared/src/main/java/stroom/util/shared/Range.java