001package com.nimbusds.oauth2.sdk.http;
002
003
004import net.jcip.annotations.ThreadSafe;
005
006
007/**
008 * Abstract retrieved of resources by URL with HTTP timeout and entity size
009 * restrictions.
010 */
011@ThreadSafe
012@Deprecated
013public abstract class AbstractRestrictedResourceRetriever implements RestrictedResourceRetriever {
014        
015
016        /**
017         * The HTTP connect timeout, in milliseconds.
018         */
019        private int connectTimeout;
020
021
022        /**
023         * The HTTP read timeout, in milliseconds.
024         */
025        private int readTimeout;
026
027
028        /**
029         * The HTTP entity size limit, in bytes.
030         */
031        private int sizeLimit;
032
033
034        /**
035         * Creates a new abstract restricted resource retriever.
036         *
037         * @param connectTimeout The HTTP connects timeout, in milliseconds,
038         *                       zero for infinite. Must not be negative.
039         * @param readTimeout    The HTTP read timeout, in milliseconds, zero
040         *                       for infinite. Must not be negative.
041         * @param sizeLimit      The HTTP entity size limit, in bytes, zero for
042         *                       infinite. Must not be negative.
043         */
044        public AbstractRestrictedResourceRetriever(int connectTimeout, int readTimeout, int sizeLimit) {
045                setConnectTimeout(connectTimeout);
046                setReadTimeout(readTimeout);
047                setSizeLimit(sizeLimit);
048        }
049
050
051        @Override
052        public int getConnectTimeout() {
053
054                return connectTimeout;
055        }
056
057
058        @Override
059        public void setConnectTimeout(final int connectTimeoutMs) {
060
061                if (connectTimeoutMs < 0) {
062                        throw new IllegalArgumentException("The connect timeout must not be negative");
063                }
064
065                this.connectTimeout = connectTimeoutMs;
066        }
067
068
069        @Override
070        public int getReadTimeout() {
071
072                return readTimeout;
073        }
074
075
076        @Override
077        public void setReadTimeout(final int readTimeoutMs) {
078
079                if (readTimeoutMs < 0) {
080                        throw new IllegalArgumentException("The read timeout must not be negative");
081                }
082
083                this.readTimeout = readTimeoutMs;
084        }
085
086
087        @Override
088        public int getSizeLimit() {
089
090                return sizeLimit;
091        }
092
093
094        @Override
095        public void setSizeLimit(int sizeLimitBytes) {
096
097                if (sizeLimitBytes < 0) {
098                        throw new IllegalArgumentException("The size limit must not be negative");
099                }
100
101                this.sizeLimit = sizeLimitBytes;
102        }
103}