JAL-2418 add GPL to main sources
[jalview.git] / src / jalview / io / cache / AppCache.java
index fc528ef..eaf6ecd 100644 (file)
@@ -1,12 +1,29 @@
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ * 
+ * This file is part of Jalview.
+ * 
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License 
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *  
+ * Jalview is distributed in the hope that it will be useful, but 
+ * WITHOUT ANY WARRANTY; without even the implied warranty 
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+ * PURPOSE.  See the GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
 package jalview.io.cache;
 
-
 import jalview.bin.Cache;
 
-import java.util.Arrays;
 import java.util.Hashtable;
 import java.util.LinkedHashSet;
-import java.util.List;
 
 /**
  * A singleton class used for querying and persisting cache items.
@@ -16,15 +33,15 @@ import java.util.List;
  */
 public class AppCache
 {
-  private static AppCache instance = null;
+  public static final String DEFAULT_LIMIT = "99";
 
-  private Hashtable<String, LinkedHashSet<String>> cacheItems;
+  public static final String CACHE_DELIMITER = ";";
 
-  private static final String DEFAULT_LIMIT_KEY = ".DEFAULT_LIMIT";
+  private static AppCache instance = null;
 
-  private static final String DEFAULT_LIMIT = "99";
+  private static final String DEFAULT_LIMIT_KEY = ".DEFAULT_LIMIT";
 
-  private static final String CACHE_DELIMITER = ";";
+  private Hashtable<String, LinkedHashSet<String>> cacheItems;
 
   private AppCache()
   {
@@ -48,9 +65,8 @@ public class AppCache
     return foundCache;
   }
 
-
   /**
-   * Returns an singleton instance of AppCache
+   * Returns a singleton instance of AppCache
    * 
    * @return
    */
@@ -64,34 +80,6 @@ public class AppCache
   }
 
   /**
-   * Method for initialising cache items for a given cache key
-   * 
-   * @param cacheKey
-   */
-  public void initCache(String cacheKey)
-  {
-    String separatedStr = Cache.getProperty(cacheKey);
-    if (separatedStr == null || separatedStr.isEmpty())
-    {
-      return;
-    }
-
-    List<String> persistedCacheItems = Arrays.asList(separatedStr.split(CACHE_DELIMITER));
-
-    LinkedHashSet<String> foundCacheItems = cacheItems.get(cacheKey);
-    if (foundCacheItems == null)
-    {
-      foundCacheItems = new LinkedHashSet<String>();
-    }
-
-    for (String cacheItem : persistedCacheItems)
-    {
-      foundCacheItems.add(cacheItem);
-    }
-    cacheItems.put(cacheKey, foundCacheItems);
-  }
-
-  /**
    * Method for persisting cache items for a given cache key
    * 
    * @param cacheKey
@@ -114,9 +102,10 @@ public class AppCache
   }
 
   /**
-   * Method for deleted cached items for a given cache key
+   * Method for deleting cached items for a given cache key
    * 
    * @param cacheKey
+   *          the cache key
    */
   public void deleteCacheItems(String cacheKey)
   {
@@ -128,9 +117,10 @@ public class AppCache
    * Method for obtaining the preset maximum cache limit for a given cache key
    * 
    * @param cacheKey
-   * @return
+   *          the cache key
+   * @return the max number of items that could be cached
    */
-  public String getCacheLmit(String cacheKey)
+  public String getCacheLimit(String cacheKey)
   {
     String uniqueKey = cacheKey + DEFAULT_LIMIT_KEY;
     return Cache.getDefault(uniqueKey, DEFAULT_LIMIT);
@@ -140,13 +130,17 @@ public class AppCache
    * Method for updating the preset maximum cache limit for a given cache key
    * 
    * @param cacheKey
+   *          the cache key
    * @param newLimit
+   *          the max number of items that could be cached for the given cache
+   *          key
    * @return
    */
-  public int updateCacheLimit(String cacheKey, String newLimit)
+  public int updateCacheLimit(String cacheKey, int newUserLimit)
   {
+    String newLimit = String.valueOf(newUserLimit);
     String uniqueKey = cacheKey + DEFAULT_LIMIT_KEY;
-    String formerLimit = getCacheLmit(cacheKey);
+    String formerLimit = getCacheLimit(cacheKey);
     if (newLimit != null && !newLimit.isEmpty()
             && !formerLimit.equals(newLimit))
     {
@@ -161,20 +155,13 @@ public class AppCache
    * structure
    * 
    * @param cacheKey
+   *          the cache key
    * @param cacheItems
+   *          the items to add to the cache
    */
-  public void putCache(String cacheKey, LinkedHashSet<String> cacheItems)
+  public void putCache(String cacheKey, LinkedHashSet<String> newCacheItems)
   {
-    getCacheItems().put(cacheKey, cacheItems);
+    cacheItems.put(cacheKey, newCacheItems);
   }
 
-  /**
-   * Getter method for obtaining cache data structure
-   * 
-   * @return
-   */
-  private Hashtable<String, LinkedHashSet<String>> getCacheItems()
-  {
-    return cacheItems;
-  }
 }