X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fio%2Fcache%2FAppCache.java;h=eaf6ecd65b25423572a18958c5287a29ad1de902;hb=ae91bd2b6c74d4b6267d0df5670db7207707130b;hp=8ed33e692ca1a2839165573b52280c93ebbb239c;hpb=53e3890428beabca3cdb44b90ad8e1c294d58768;p=jalview.git
diff --git a/src/jalview/io/cache/AppCache.java b/src/jalview/io/cache/AppCache.java
index 8ed33e6..eaf6ecd 100644
--- a/src/jalview/io/cache/AppCache.java
+++ b/src/jalview/io/cache/AppCache.java
@@ -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 .
+ * 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> 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> 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 persistedCacheItems = Arrays.asList(separatedStr.split(CACHE_DELIMITER));
-
- LinkedHashSet foundCacheItems = cacheItems.get(cacheKey);
- if (foundCacheItems == null)
- {
- foundCacheItems = new LinkedHashSet();
- }
-
- for (String cacheItem : persistedCacheItems)
- {
- foundCacheItems.add(cacheItem);
- }
- cacheItems.put(cacheKey, foundCacheItems);
- }
-
- /**
* Method for persisting cache items for a given cache key
*
* @param cacheKey
@@ -113,22 +101,46 @@ public class AppCache
Cache.setProperty(cacheKey, delimitedCacheString);
}
+ /**
+ * Method for deleting cached items for a given cache key
+ *
+ * @param cacheKey
+ * the cache key
+ */
public void deleteCacheItems(String cacheKey)
{
cacheItems.put(cacheKey, new LinkedHashSet());
persistCache(cacheKey);
}
- public String getCacheLmit(String cacheKey)
+ /**
+ * Method for obtaining the preset maximum cache limit for a given cache key
+ *
+ * @param cacheKey
+ * the cache key
+ * @return the max number of items that could be cached
+ */
+ public String getCacheLimit(String cacheKey)
{
String uniqueKey = cacheKey + DEFAULT_LIMIT_KEY;
return Cache.getDefault(uniqueKey, DEFAULT_LIMIT);
}
- public int updateCacheLimit(String cacheKey, String newLimit)
+ /**
+ * 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, 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))
{
@@ -143,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 cacheItems)
+ public void putCache(String cacheKey, LinkedHashSet newCacheItems)
{
- getCacheItems().put(cacheKey, cacheItems);
+ cacheItems.put(cacheKey, newCacheItems);
}
- /**
- * Getter method for obtaining cache data structure
- *
- * @return
- */
- private Hashtable> getCacheItems()
- {
- return cacheItems;
- }
}