class IntegerUnion implements NumberUnion<Integer> {

        @Override
        public boolean contains(Object o) {
                Integer value = (Integer)o;
                int index = Collections.binarySearch(intervals,value );
                if(index>=0) {
                        return true;
                } else {
                        //retrieve the insertion point
                        index = -index - 1;     
                        //value < than an end range
                        return index % 2 != 0; 
                }
                
        }

        public  IntegerUnion(int value);
        public  IntegerUnion(int valueBegin, int valueEnd);
        public  IntegerUnion();
        public  IntegerUnion(int[] externalArray);
        public  IntegerUnion(IntegerUnion externalSet);
        public  IntegerUnion(Collection<Integer> externalCollection);
        public  IntegerUnion(Iterator<Integer> valueIterator);

}