com.google.common.collect.DiscreteDomains.java Source code

Java tutorial

Introduction

Here is the source code for com.google.common.collect.DiscreteDomains.java

Source

package com.google.common.collect;

import com.google.common.annotations.Beta;
import com.google.common.annotations.GwtCompatible;
import java.io.Serializable;
import java.math.BigInteger;

@Beta
@GwtCompatible
public final class DiscreteDomains {
    static DiscreteDomain<BigInteger> bigIntegers() {
        return BigIntegerDomain.INSTANCE;
    }

    public static DiscreteDomain<Integer> integers() {
        return IntegerDomain.INSTANCE;
    }

    public static DiscreteDomain<Long> longs() {
        return LongDomain.INSTANCE;
    }

    private static final class BigIntegerDomain extends DiscreteDomain<BigInteger> implements Serializable {
        private static final BigIntegerDomain INSTANCE = new BigIntegerDomain();
        private static final BigInteger MAX_LONG;
        private static final BigInteger MIN_LONG = BigInteger.valueOf(-9223372036854775808L);
        private static final long serialVersionUID;

        static {
            MAX_LONG = BigInteger.valueOf(9223372036854775807L);
        }

        private Object readResolve() {
            return INSTANCE;
        }

        public long distance(BigInteger paramBigInteger1, BigInteger paramBigInteger2) {
            return paramBigInteger1.subtract(paramBigInteger2).max(MIN_LONG).min(MAX_LONG).longValue();
        }

        public BigInteger next(BigInteger paramBigInteger) {
            return paramBigInteger.add(BigInteger.ONE);
        }

        public BigInteger previous(BigInteger paramBigInteger) {
            return paramBigInteger.subtract(BigInteger.ONE);
        }
    }

    private static final class IntegerDomain extends DiscreteDomain<Integer> implements Serializable {
        private static final IntegerDomain INSTANCE = new IntegerDomain();
        private static final long serialVersionUID;

        private Object readResolve() {
            return INSTANCE;
        }

        public long distance(Integer paramInteger1, Integer paramInteger2) {
            return paramInteger2.intValue() - paramInteger1.intValue();
        }

        public Integer maxValue() {
            return Integer.valueOf(2147483647);
        }

        public Integer minValue() {
            return Integer.valueOf(-2147483648);
        }

        public Integer next(Integer paramInteger) {
            int i = paramInteger.intValue();
            if (i == 2147483647)
                return null;
            return Integer.valueOf(i + 1);
        }

        public Integer previous(Integer paramInteger) {
            int i = paramInteger.intValue();
            if (i == -2147483648)
                return null;
            return Integer.valueOf(i - 1);
        }
    }

    private static final class LongDomain extends DiscreteDomain<Long> implements Serializable {
        private static final LongDomain INSTANCE = new LongDomain();
        private static final long serialVersionUID;

        private Object readResolve() {
            return INSTANCE;
        }

        public long distance(Long paramLong1, Long paramLong2) {
            long l = paramLong2.longValue() - paramLong1.longValue();
            if ((paramLong2.longValue() > paramLong1.longValue()) && (l < 0L))
                l = 9223372036854775807L;
            do
                return l;
            while ((paramLong2.longValue() >= paramLong1.longValue()) || (l <= 0L));
            return -9223372036854775808L;
        }

        public Long maxValue() {
            return Long.valueOf(9223372036854775807L);
        }

        public Long minValue() {
            return Long.valueOf(-9223372036854775808L);
        }

        public Long next(Long paramLong) {
            long l = paramLong.longValue();
            if (l == 9223372036854775807L)
                return null;
            return Long.valueOf(1L + l);
        }

        public Long previous(Long paramLong) {
            long l = paramLong.longValue();
            if (l == -9223372036854775808L)
                return null;
            return Long.valueOf(l - 1L);
        }
    }
}

/* Location:           C:\9exce\android\pj\kaixin_android_3.9.9_034_kaixin001\classes_dex2jar.jar
 * Qualified Name:     com.google.common.collect.DiscreteDomains
 * JD-Core Version:    0.6.0
 */