You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2008/04/17 22:18:56 UTC

svn commit: r649261 - in /cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query: BaseQueryMetadata.java QueryCacheStrategy.java

Author: aadamchik
Date: Thu Apr 17 13:18:55 2008
New Revision: 649261

URL: http://svn.apache.org/viewvc?rev=649261&view=rev
Log:
CAY-1035 Replace QueryMetadata String cache policies with an enum
(legacy policy translation layer)

Modified:
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/BaseQueryMetadata.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/QueryCacheStrategy.java

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/BaseQueryMetadata.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/BaseQueryMetadata.java?rev=649261&r1=649260&r2=649261&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/BaseQueryMetadata.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/BaseQueryMetadata.java Thu Apr 17 13:18:55 2008
@@ -50,7 +50,6 @@
     boolean fetchingDataRows = QueryMetadata.FETCHING_DATA_ROWS_DEFAULT;
     boolean refreshingObjects = QueryMetadata.REFRESHING_OBJECTS_DEFAULT;
     boolean resolvingInherited = QueryMetadata.RESOLVING_INHERITED_DEFAULT;
-    String cachePolicy = QueryMetadata.CACHE_POLICY_DEFAULT;
     QueryCacheStrategy cacheStrategy = QueryCacheStrategy.getDefaultStrategy();
 
     PrefetchTreeNode prefetchTree;
@@ -78,7 +77,6 @@
         this.pageSize = info.getPageSize();
         this.refreshingObjects = info.isRefreshingObjects();
         this.resolvingInherited = info.isResolvingInherited();
-        this.cachePolicy = info.getCachePolicy();
         this.cacheStrategy = info.getCacheStrategy();
         this.cacheKey = info.getCacheKey();
 
@@ -189,14 +187,15 @@
                 ? "true".equalsIgnoreCase(resolvingInherited.toString())
                 : QueryMetadata.RESOLVING_INHERITED_DEFAULT;
 
-        this.cachePolicy = (cachePolicy != null)
-                ? cachePolicy.toString()
-                : QueryMetadata.CACHE_POLICY_DEFAULT;
-
         this.cacheStrategy = (cacheStrategy != null) ? QueryCacheStrategy
                 .safeValueOf(cacheStrategy.toString()) : QueryCacheStrategy
                 .getDefaultStrategy();
 
+        // use legacy cachePolicy if it is provided and no strategy is set...
+        if (cacheStrategy == null && cachePolicy != null) {
+            setCachePolicy(cachePolicy.toString());
+        }
+
         this.cacheGroups = null;
         if (cacheGroups instanceof String[]) {
             this.cacheGroups = (String[]) cacheGroups;
@@ -210,20 +209,6 @@
         }
     }
 
-    /**
-     * @since 3.0
-     */
-    public QueryCacheStrategy getCacheStrategy() {
-        return cacheStrategy;
-    }
-    
-    /**
-     * @since 3.0
-     */
-    void setCacheStrategy(QueryCacheStrategy cacheStrategy) {
-        this.cacheStrategy = cacheStrategy;
-    }
-
     public void encodeAsXML(XMLEncoder encoder) {
         if (refreshingObjects != QueryMetadata.REFRESHING_OBJECTS_DEFAULT) {
             encoder.printProperty(
@@ -251,11 +236,6 @@
             encoder.printProperty(QueryMetadata.PAGE_SIZE_PROPERTY, pageSize);
         }
 
-        if (cachePolicy != null
-                && !QueryMetadata.CACHE_POLICY_DEFAULT.equals(cachePolicy)) {
-            encoder.printProperty(QueryMetadata.CACHE_POLICY_PROPERTY, cachePolicy);
-        }
-
         if (cacheStrategy != null
                 && QueryCacheStrategy.getDefaultStrategy() != cacheStrategy) {
             encoder.printProperty(QueryMetadata.CACHE_STRATEGY_PROPERTY, cacheStrategy
@@ -271,7 +251,7 @@
             for (int i = 1; i < cacheGroups.length; i++) {
                 buffer.append(',').append(cacheGroups[i]);
             }
-            encoder.printProperty(QueryMetadata.CACHE_GROUPS_PROPERTY, cachePolicy);
+            encoder.printProperty(QueryMetadata.CACHE_GROUPS_PROPERTY, buffer.toString());
         }
     }
 
@@ -356,14 +336,67 @@
      * @deprecated since 3.0 {@link #getCacheStrategy()} replaces this method.
      */
     public String getCachePolicy() {
-        return cachePolicy;
+        if (cacheStrategy == null) {
+            return QueryMetadata.CACHE_POLICY_DEFAULT;
+        }
+
+        switch (cacheStrategy) {
+            case NO_CACHE:
+                return QueryMetadata.NO_CACHE;
+            case LOCAL_CACHE:
+                return QueryMetadata.LOCAL_CACHE;
+            case LOCAL_CACHE_REFRESH:
+                return QueryMetadata.LOCAL_CACHE_REFRESH;
+            case SHARED_CACHE:
+                return QueryMetadata.SHARED_CACHE;
+            case SHARED_CACHE_REFRESH:
+                return QueryMetadata.SHARED_CACHE_REFRESH;
+
+            default:
+                return QueryMetadata.CACHE_POLICY_DEFAULT;
+        }
     }
 
     /**
-     * @deprecated since 3.0 {@link #setCacheStrategy(QueryCacheStrategy)} replaces this method.
+     * @deprecated since 3.0 {@link #setCacheStrategy(QueryCacheStrategy)} replaces this
+     *             method.
      */
     void setCachePolicy(String policy) {
-        this.cachePolicy = policy;
+        if (policy == null) {
+            cacheStrategy = null;
+        }
+        else if (QueryMetadata.NO_CACHE.equals(policy)) {
+            cacheStrategy = QueryCacheStrategy.NO_CACHE;
+        }
+        else if (QueryMetadata.LOCAL_CACHE.equals(policy)) {
+            cacheStrategy = QueryCacheStrategy.LOCAL_CACHE;
+        }
+        else if (QueryMetadata.LOCAL_CACHE_REFRESH.equals(policy)) {
+            cacheStrategy = QueryCacheStrategy.LOCAL_CACHE_REFRESH;
+        }
+        else if (QueryMetadata.SHARED_CACHE.equals(policy)) {
+            cacheStrategy = QueryCacheStrategy.SHARED_CACHE;
+        }
+        else if (QueryMetadata.SHARED_CACHE_REFRESH.equals(policy)) {
+            cacheStrategy = QueryCacheStrategy.SHARED_CACHE_REFRESH;
+        }
+        else {
+            cacheStrategy = QueryCacheStrategy.NO_CACHE;
+        }
+    }
+
+    /**
+     * @since 3.0
+     */
+    public QueryCacheStrategy getCacheStrategy() {
+        return cacheStrategy;
+    }
+
+    /**
+     * @since 3.0
+     */
+    void setCacheStrategy(QueryCacheStrategy cacheStrategy) {
+        this.cacheStrategy = cacheStrategy;
     }
 
     /**

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/QueryCacheStrategy.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/QueryCacheStrategy.java?rev=649261&r1=649260&r2=649261&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/QueryCacheStrategy.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/QueryCacheStrategy.java Thu Apr 17 13:18:55 2008
@@ -71,6 +71,9 @@
         }
     }
 
+    /**
+     * Returns the default strategy - {@link #NO_CACHE}.
+     */
     public static QueryCacheStrategy getDefaultStrategy() {
         return NO_CACHE;
     }