The idea here is to save memory.
We have an object representing a column chunk that contains 5 longs (5*8 = 40 bytes). 
In most cases those values actually fit in an int so I had this factory method to return the implementation using ints instead when the values fit in ints.
Then we realized that those values are actually always positive so I'm adding Integer.MIN_VALUE to fit values twice as big in the same space (see getters that subtract Integer.MIN_VALUE)
Actually the test here should be <= not <