All Downloads are FREE. Search and download functionalities are using the official Maven repository.

javax.ws.rs.core.CacheControl Maven / Gradle / Ivy

There is a newer version: 10.0.0-M3
Show newest version
/*
 * #%L
 * Apache Geronimo JAX-RS Spec 2.0
 * %%
 * Copyright (C) 2003 - 2014 The Apache Software Foundation
 * %%
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * #L%
 */

package javax.ws.rs.core;

import javax.ws.rs.ext.RuntimeDelegate;
import javax.ws.rs.ext.RuntimeDelegate.HeaderDelegate;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


public class CacheControl {

    private static final HeaderDelegate HEADER_DELEGATE = RuntimeDelegate.getInstance().createHeaderDelegate(CacheControl.class);
    private boolean privateFlag;
    private List privateFields;
    private boolean noCache;
    private List noCacheFields;
    private boolean noStore;
    private boolean noTransform;
    private boolean mustRevalidate;
    private boolean proxyRevalidate;
    private int maxAge = -1;
    private int sMaxAge = -1;
    private Map cacheExtension;


    public CacheControl() {
        privateFlag = false;
        noCache = false;
        noStore = false;
        noTransform = true;
        mustRevalidate = false;
        proxyRevalidate = false;
    }


    public static CacheControl valueOf(final String value) {
        return HEADER_DELEGATE.fromString(value);
    }


    public boolean isMustRevalidate() {
        return mustRevalidate;
    }


    public void setMustRevalidate(final boolean mustRevalidate) {
        this.mustRevalidate = mustRevalidate;
    }


    public boolean isProxyRevalidate() {
        return proxyRevalidate;
    }


    public void setProxyRevalidate(final boolean proxyRevalidate) {
        this.proxyRevalidate = proxyRevalidate;
    }


    public int getMaxAge() {
        return maxAge;
    }


    public void setMaxAge(final int maxAge) {
        this.maxAge = maxAge;
    }


    public int getSMaxAge() {
        return sMaxAge;
    }


    public void setSMaxAge(final int sMaxAge) {
        this.sMaxAge = sMaxAge;
    }


    public List getNoCacheFields() {
        if (noCacheFields == null) {
            noCacheFields = new ArrayList();
        }
        return noCacheFields;
    }


    public void setNoCache(final boolean noCache) {
        this.noCache = noCache;
    }


    public boolean isNoCache() {
        return noCache;
    }


    public boolean isPrivate() {
        return privateFlag;
    }


    public List getPrivateFields() {
        if (privateFields == null) {
            privateFields = new ArrayList();
        }
        return privateFields;
    }


    public void setPrivate(final boolean flag) {
        this.privateFlag = flag;
    }


    public boolean isNoTransform() {
        return noTransform;
    }


    public void setNoTransform(final boolean noTransform) {
        this.noTransform = noTransform;
    }


    public boolean isNoStore() {
        return noStore;
    }


    public void setNoStore(final boolean noStore) {
        this.noStore = noStore;
    }


    public Map getCacheExtension() {
        if (cacheExtension == null) {
            cacheExtension = new HashMap();
        }
        return cacheExtension;
    }


    @Override
    public String toString() {
        return HEADER_DELEGATE.toString(this);
    }


    @Override
    public int hashCode() {
        int hash = 7;
        hash = 41 * hash + (this.privateFlag ? 1 : 0);
        hash = 41 * hash + (this.privateFields != null ? this.privateFields.hashCode() : 0);
        hash = 41 * hash + (this.noCache ? 1 : 0);
        hash = 41 * hash + (this.noCacheFields != null ? this.noCacheFields.hashCode() : 0);
        hash = 41 * hash + (this.noStore ? 1 : 0);
        hash = 41 * hash + (this.noTransform ? 1 : 0);
        hash = 41 * hash + (this.mustRevalidate ? 1 : 0);
        hash = 41 * hash + (this.proxyRevalidate ? 1 : 0);
        hash = 41 * hash + this.maxAge;
        hash = 41 * hash + this.sMaxAge;
        hash = 41 * hash + (this.cacheExtension != null ? this.cacheExtension.hashCode() : 0);
        return hash;
    }


    @Override
    public boolean equals(final Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final CacheControl other = (CacheControl) obj;
        if (this.privateFlag != other.privateFlag) {
            return false;
        }
        if (this.privateFields != other.privateFields && (this.privateFields == null || !this.privateFields.equals(other.privateFields))) {
            return false;
        }
        if (this.noCache != other.noCache) {
            return false;
        }
        if (this.noCacheFields != other.noCacheFields && (this.noCacheFields == null || !this.noCacheFields.equals(other.noCacheFields))) {
            return false;
        }
        if (this.noStore != other.noStore) {
            return false;
        }
        if (this.noTransform != other.noTransform) {
            return false;
        }
        if (this.mustRevalidate != other.mustRevalidate) {
            return false;
        }
        if (this.proxyRevalidate != other.proxyRevalidate) {
            return false;
        }
        if (this.maxAge != other.maxAge) {
            return false;
        }
        if (this.sMaxAge != other.sMaxAge) {
            return false;
        }
        if (this.cacheExtension != other.cacheExtension && (this.cacheExtension == null || !this.cacheExtension.equals(other.cacheExtension))) {
            return false;
        }
        return true;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy