You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by bl...@apache.org on 2010/03/05 07:28:36 UTC

svn commit: r919310 - /cxf/sandbox/geronimo-jaxrs_1.0_spec/src/main/java/javax/ws/rs/core/CacheControl.java

Author: bluk
Date: Fri Mar  5 06:28:35 2010
New Revision: 919310

URL: http://svn.apache.org/viewvc?rev=919310&view=rev
Log:
Add JAX-RS CacheControl implementation

Modified:
    cxf/sandbox/geronimo-jaxrs_1.0_spec/src/main/java/javax/ws/rs/core/CacheControl.java

Modified: cxf/sandbox/geronimo-jaxrs_1.0_spec/src/main/java/javax/ws/rs/core/CacheControl.java
URL: http://svn.apache.org/viewvc/cxf/sandbox/geronimo-jaxrs_1.0_spec/src/main/java/javax/ws/rs/core/CacheControl.java?rev=919310&r1=919309&r2=919310&view=diff
==============================================================================
--- cxf/sandbox/geronimo-jaxrs_1.0_spec/src/main/java/javax/ws/rs/core/CacheControl.java (original)
+++ cxf/sandbox/geronimo-jaxrs_1.0_spec/src/main/java/javax/ws/rs/core/CacheControl.java Fri Mar  5 06:28:35 2010
@@ -19,6 +19,208 @@
 
 package javax.ws.rs.core;
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.ws.rs.ext.RuntimeDelegate;
+import javax.ws.rs.ext.RuntimeDelegate.HeaderDelegate;
+
 public class CacheControl {
 
+    private int                 maxAge          = -1;
+    private int                 sMaxAge         = -1;
+    private boolean             isPrivate       = false;
+    private boolean             noCache         = false;
+    private boolean             noStore         = false;
+    private boolean             noTransform     = true;
+    private boolean             mustRevalidate  = false;
+    private boolean             proxyRevalidate = false;
+    private Map<String, String> cacheExtensions = null;
+    private List<String>        noCacheFields   = null;
+    private List<String>        privateFields   = null;
+
+    public CacheControl() {
+        /* do nothing */
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (obj == this) {
+            return true;
+        }
+
+        /*
+         * TODO: should the check be for instanceof or for getClass()? this
+         * class is not final so checking instanceof for now.
+         */
+        if (!(obj instanceof CacheControl)) {
+            return false;
+        }
+
+        CacheControl other = (CacheControl)obj;
+
+        if (isPrivate != other.isPrivate()) {
+            return false;
+        }
+
+        if (noCache != other.isNoCache()) {
+            return false;
+        }
+
+        if (noStore != other.isNoStore()) {
+            return false;
+        }
+
+        if (noTransform != other.isNoTransform()) {
+            return false;
+        }
+
+        if (mustRevalidate != other.isMustRevalidate()) {
+            return false;
+        }
+
+        if (proxyRevalidate != other.isProxyRevalidate()) {
+            return false;
+        }
+
+        if (maxAge != other.getMaxAge()) {
+            return false;
+        }
+
+        if (sMaxAge != other.getSMaxAge()) {
+            return false;
+        }
+
+        if (!getCacheExtension().equals(other.getCacheExtension())) {
+            return false;
+        }
+
+        if (!getPrivateFields().equals(other.getPrivateFields())) {
+            return false;
+        }
+
+        if (!getNoCacheFields().equals(other.getNoCacheFields())) {
+            return false;
+        }
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int result = 17;
+        result = 31 * result + maxAge;
+        result = 31 * result + sMaxAge;
+        result = 31 * result + ((isPrivate) ? 1 : 0);
+        result = 31 * result + ((noCache) ? 1 : 0);
+        result = 31 * result + ((noStore) ? 1 : 0);
+        result = 31 * result + ((noTransform) ? 1 : 0);
+        result = 31 * result + ((mustRevalidate) ? 1 : 0);
+        result = 31 * result + ((proxyRevalidate) ? 1 : 0);
+        result = 31 * result + getCacheExtension().hashCode();
+        result = 31 * result + getNoCacheFields().hashCode();
+        result = 31 * result + getPrivateFields().hashCode();
+        return result;
+    }
+
+    public Map<String, String> getCacheExtension() {
+        if (cacheExtensions == null) {
+            cacheExtensions = new HashMap<String, String>();
+        }
+        return cacheExtensions;
+    }
+
+    public int getMaxAge() {
+        return maxAge;
+    }
+
+    public List<String> getNoCacheFields() {
+        if (noCacheFields == null) {
+            noCacheFields = new ArrayList<String>();
+        }
+        return noCacheFields;
+    }
+
+    public List<String> getPrivateFields() {
+        if (privateFields == null) {
+            privateFields = new ArrayList<String>();
+        }
+        return privateFields;
+    }
+
+    public int getSMaxAge() {
+        return sMaxAge;
+    }
+
+    public boolean isMustRevalidate() {
+        return mustRevalidate;
+    }
+
+    public boolean isNoCache() {
+        return noCache;
+    }
+
+    public boolean isNoStore() {
+        return noStore;
+    }
+
+    public boolean isNoTransform() {
+        return noTransform;
+    }
+
+    public boolean isPrivate() {
+        return isPrivate;
+    }
+
+    public boolean isProxyRevalidate() {
+        return proxyRevalidate;
+    }
+
+    public void setMaxAge(int maxAge) {
+        this.maxAge = maxAge;
+    }
+
+    public void setMustRevalidate(boolean mustRevalidate) {
+        this.mustRevalidate = mustRevalidate;
+    }
+
+    public void setNoCache(boolean noCache) {
+        this.noCache = noCache;
+    }
+
+    public void setNoStore(boolean noStore) {
+        this.noStore = noStore;
+    }
+
+    public void setNoTransform(boolean noTransform) {
+        this.noTransform = noTransform;
+    }
+
+    public void setPrivate(boolean isPrivate) {
+        this.isPrivate = isPrivate;
+    }
+
+    public void setProxyRevalidate(boolean proxyRevalidate) {
+        this.proxyRevalidate = proxyRevalidate;
+    }
+
+    public void setSMaxAge(int sMaxAge) {
+        this.sMaxAge = sMaxAge;
+    }
+
+    private final static HeaderDelegate<CacheControl> headerDelegate =
+                                                                         RuntimeDelegate
+                                                                             .getInstance()
+                                                                             .createHeaderDelegate(CacheControl.class);
+
+    @Override
+    public String toString() {
+        return headerDelegate.toString(this);
+    }
+
+    public static CacheControl valueOf(String value) {
+        return headerDelegate.fromString(value);
+    }
 }