All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.sun.syndication.fetcher.impl.LinkedHashMapFeedInfoCache Maven / Gradle / Ivy

The newest version!
package com.sun.syndication.fetcher.impl;

import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.Map;

/**
 * 

An implementation of the {@link com.sun.syndication.fetcher.impl.FeedFetcherCache} interface.

* *

Unlike the HashMapFeedInfoCache this implementation will not grow unbound

* * @author Javier Kohen * @author Nick Lothian * */ public class LinkedHashMapFeedInfoCache extends HashMapFeedInfoCache { private final class CacheImpl extends LinkedHashMap { private static final long serialVersionUID = -6977191330127794920L; public CacheImpl() { super(16, 0.75F, true); } protected boolean removeEldestEntry(Map.Entry eldest) { return size() > getMaxEntries(); } } private static final int DEFAULT_MAX_ENTRIES = 20; private static final long serialVersionUID = 1694228973357997417L; private int maxEntries = DEFAULT_MAX_ENTRIES; private final static LinkedHashMapFeedInfoCache _instance = new LinkedHashMapFeedInfoCache(); /** * Get the global instance of the cache * @return an implementation of FeedFetcherCache */ public static final FeedFetcherCache getInstance() { return _instance; } /** *

Constructor for HashMapFeedInfoCache

* *

Only use this if you want multiple instances of the cache. * Usually {@link #getInstance()} is more appropriate.

* * @see #getInstance() */ public LinkedHashMapFeedInfoCache() { super(); } protected Map createInfoCache() { return Collections.synchronizedMap(new CacheImpl()); } public synchronized final int getMaxEntries() { return maxEntries; } public synchronized final void setMaxEntries(int maxEntries) { this.maxEntries = maxEntries; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy