private Hashtable<String, LinkedHashSet<String>> cacheItems;
+ private static final String DEFAULT_LIMIT_KEY = ".DEFAULT_LIMIT";
+
+ private static final String DEFAULT_LIMIT = "99";
+
private static final String CACHE_DELIMITER = ";";
private AppCache()
Cache.setProperty(cacheKey, delimitedCacheString);
}
+ /**
+ * Method for deleted cached items for a given cache key
+ *
+ * @param cacheKey
+ */
public void deleteCacheItems(String cacheKey)
{
cacheItems.put(cacheKey, new LinkedHashSet<String>());
}
/**
+ * Method for obtaining the preset maximum cache limit for a given cache key
+ *
+ * @param cacheKey
+ * @return
+ */
+ public String getCacheLmit(String cacheKey)
+ {
+ String uniqueKey = cacheKey + DEFAULT_LIMIT_KEY;
+ return Cache.getDefault(uniqueKey, DEFAULT_LIMIT);
+ }
+
+ /**
+ * Method for updating the preset maximum cache limit for a given cache key
+ *
+ * @param cacheKey
+ * @param newLimit
+ * @return
+ */
+ public int updateCacheLimit(String cacheKey, String newLimit)
+ {
+ String uniqueKey = cacheKey + DEFAULT_LIMIT_KEY;
+ String formerLimit = getCacheLmit(cacheKey);
+ if (newLimit != null && !newLimit.isEmpty()
+ && !formerLimit.equals(newLimit))
+ {
+ Cache.setProperty(uniqueKey, newLimit);
+ formerLimit = newLimit;
+ }
+ return Integer.valueOf(formerLimit);
+ }
+
+ /**
* Method for inserting cache items for given cache key into the cache data
* structure
*
*
* @return
*/
- private Hashtable<String, LinkedHashSet<String>> getCacheItems()
+ Hashtable<String, LinkedHashSet<String>> getCacheItems()
{
return cacheItems;
}