//# 0 errors, 226 messages
//#
/*
    //#LRUCache2.java:1:1: class: org.apache.roller.weblogger.util.LRUCache2$CacheEntry
    //#LRUCache2.java:1:1: method: org.apache.roller.weblogger.util.LRUCache2$CacheEntry.org.apache.roller.weblogger.util.LRUCache2$CacheEntry__static_init
    //#LRUCache2.java:1:1: class: org.apache.roller.weblogger.util.LRUCache2$LRULinkedHashMap
    //#LRUCache2.java:1:1: method: org.apache.roller.weblogger.util.LRUCache2$LRULinkedHashMap.org.apache.roller.weblogger.util.LRUCache2$LRULinkedHashMap__static_init
    //#LRUCache2.java:1:1: class: org.apache.roller.weblogger.util.LRUCache2$Environment
    //#LRUCache2.java:1:1: method: org.apache.roller.weblogger.util.LRUCache2$Environment.org.apache.roller.weblogger.util.LRUCache2$Environment__static_init
    //#LRUCache2.java:1:1: class: org.apache.roller.weblogger.util.LRUCache2$DefaultEnvironment
    //#LRUCache2.java:1:1: method: org.apache.roller.weblogger.util.LRUCache2$DefaultEnvironment.org.apache.roller.weblogger.util.LRUCache2$DefaultEnvironment__static_init
    //#LRUCache2.java:1:1: class: org.apache.roller.weblogger.util.LRUCache2
    //#LRUCache2.java:1:1: method: org.apache.roller.weblogger.util.LRUCache2.org.apache.roller.weblogger.util.LRUCache2__static_init
* Licensed to the Apache Software Foundation (ASF) under one or more
*  contributor license agreements.  The ASF licenses this file to You
* under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.  For additional information regarding
* copyright in this work, please see the NOTICE file in the top level
* directory of this distribution.
*/
package org.apache.roller.weblogger.util;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
/**
 * LRU cache with per-entry timeout logic.
 * 
 * @author Dave Johnson
 */
public class LRUCache2
{
    private long timeout;
    private Map cache = null;
    private Environment environment = null;

    /**
     * Create cache.
     * 
     * @param maxsize
     *            Maximum number of entries in cache.
     * @param timeout
     *            Entry timeout in milli-seconds.
     */
    public LRUCache2(int maxsize, long timeout)
    {
    //#LRUCache2.java:45: method: void org.apache.roller.weblogger.util.LRUCache2.org.apache.roller.weblogger.util.LRUCache2(int, long)
    //#input(void org.apache.roller.weblogger.util.LRUCache2(int, long)): maxsize
    //#input(void org.apache.roller.weblogger.util.LRUCache2(int, long)): this
    //#input(void org.apache.roller.weblogger.util.LRUCache2(int, long)): timeout
    //#output(void org.apache.roller.weblogger.util.LRUCache2(int, long)): new LRUCache2$DefaultEnvironment(LRUCache2#1) num objects
    //#output(void org.apache.roller.weblogger.util.LRUCache2(int, long)): this.environment.__Tag
    //#output(void org.apache.roller.weblogger.util.LRUCache2(int, long)): new LRUCache2$LRULinkedHashMap(LRUCache2#2) num objects
    //#output(void org.apache.roller.weblogger.util.LRUCache2(int, long)): this.cache.__Tag
    //#output(void org.apache.roller.weblogger.util.LRUCache2(int, long)): this.cache.maxsize
    //#output(void org.apache.roller.weblogger.util.LRUCache2(int, long)): this.cache
    //#output(void org.apache.roller.weblogger.util.LRUCache2(int, long)): this.environment
    //#output(void org.apache.roller.weblogger.util.LRUCache2(int, long)): this.timeout
    //#new obj(void org.apache.roller.weblogger.util.LRUCache2(int, long)): new LRUCache2$DefaultEnvironment(LRUCache2#1)
    //#new obj(void org.apache.roller.weblogger.util.LRUCache2(int, long)): new LRUCache2$LRULinkedHashMap(LRUCache2#2)
    //#pre[1] (void org.apache.roller.weblogger.util.LRUCache2(int, long)): maxsize in -1_610_612_737..3_221_225_471
    //#post(void org.apache.roller.weblogger.util.LRUCache2(int, long)): this.cache == &new LRUCache2$LRULinkedHashMap(LRUCache2#2)
    //#post(void org.apache.roller.weblogger.util.LRUCache2(int, long)): this.environment == &new LRUCache2$DefaultEnvironment(LRUCache2#1)
    //#post(void org.apache.roller.weblogger.util.LRUCache2(int, long)): this.timeout == timeout
    //#post(void org.apache.roller.weblogger.util.LRUCache2(int, long)): init'ed(this.timeout)
    //#post(void org.apache.roller.weblogger.util.LRUCache2(int, long)): new LRUCache2$DefaultEnvironment(LRUCache2#1) num objects == 1
    //#post(void org.apache.roller.weblogger.util.LRUCache2(int, long)): new LRUCache2$LRULinkedHashMap(LRUCache2#2) num objects == 1
    //#post(void org.apache.roller.weblogger.util.LRUCache2(int, long)): this.environment.__Tag == org/apache/roller/weblogger/util/LRUCache2$DefaultEnvironment
    //#post(void org.apache.roller.weblogger.util.LRUCache2(int, long)): this.cache.__Tag == org/apache/roller/weblogger/util/LRUCache2$LRULinkedHashMap
    //#post(void org.apache.roller.weblogger.util.LRUCache2(int, long)): this.cache.maxsize == maxsize
    //#post(void org.apache.roller.weblogger.util.LRUCache2(int, long)): this.cache.maxsize in -1_610_612_737..3_221_225_471
    //#unanalyzed(void org.apache.roller.weblogger.util.LRUCache2(int, long)): Effects-of-calling:java.util.LinkedHashMap
        this.environment = new DefaultEnvironment();
        this.timeout = timeout;
        this.cache = new LRULinkedHashMap(maxsize);
    }
    //#LRUCache2.java:49: end of method: void org.apache.roller.weblogger.util.LRUCache2.org.apache.roller.weblogger.util.LRUCache2(int, long)

    /**
     * Create cache that uses custom environment.
     * 
     * @param maxsize
     *            Maximum number of entries in cache.
     * @param timeout
     *            Entry timeout in milli-seconds.
     */
    public LRUCache2(Environment environment, int maxsize, long timeout)
    {
    //#LRUCache2.java:60: method: void org.apache.roller.weblogger.util.LRUCache2.org.apache.roller.weblogger.util.LRUCache2(LRUCache2$Environment, int, long)
    //#input(void org.apache.roller.weblogger.util.LRUCache2(LRUCache2$Environment, int, long)): environment
    //#input(void org.apache.roller.weblogger.util.LRUCache2(LRUCache2$Environment, int, long)): maxsize
    //#input(void org.apache.roller.weblogger.util.LRUCache2(LRUCache2$Environment, int, long)): this
    //#input(void org.apache.roller.weblogger.util.LRUCache2(LRUCache2$Environment, int, long)): timeout
    //#output(void org.apache.roller.weblogger.util.LRUCache2(LRUCache2$Environment, int, long)): new LRUCache2$LRULinkedHashMap(LRUCache2#1) num objects
    //#output(void org.apache.roller.weblogger.util.LRUCache2(LRUCache2$Environment, int, long)): this.cache.__Tag
    //#output(void org.apache.roller.weblogger.util.LRUCache2(LRUCache2$Environment, int, long)): this.cache.maxsize
    //#output(void org.apache.roller.weblogger.util.LRUCache2(LRUCache2$Environment, int, long)): this.cache
    //#output(void org.apache.roller.weblogger.util.LRUCache2(LRUCache2$Environment, int, long)): this.environment
    //#output(void org.apache.roller.weblogger.util.LRUCache2(LRUCache2$Environment, int, long)): this.timeout
    //#new obj(void org.apache.roller.weblogger.util.LRUCache2(LRUCache2$Environment, int, long)): new LRUCache2$LRULinkedHashMap(LRUCache2#1)
    //#pre[2] (void org.apache.roller.weblogger.util.LRUCache2(LRUCache2$Environment, int, long)): maxsize in -1_610_612_737..3_221_225_471
    //#post(void org.apache.roller.weblogger.util.LRUCache2(LRUCache2$Environment, int, long)): this.cache == &new LRUCache2$LRULinkedHashMap(LRUCache2#1)
    //#post(void org.apache.roller.weblogger.util.LRUCache2(LRUCache2$Environment, int, long)): this.environment == environment
    //#post(void org.apache.roller.weblogger.util.LRUCache2(LRUCache2$Environment, int, long)): init'ed(this.environment)
    //#post(void org.apache.roller.weblogger.util.LRUCache2(LRUCache2$Environment, int, long)): this.timeout == timeout
    //#post(void org.apache.roller.weblogger.util.LRUCache2(LRUCache2$Environment, int, long)): init'ed(this.timeout)
    //#post(void org.apache.roller.weblogger.util.LRUCache2(LRUCache2$Environment, int, long)): new LRUCache2$LRULinkedHashMap(LRUCache2#1) num objects == 1
    //#post(void org.apache.roller.weblogger.util.LRUCache2(LRUCache2$Environment, int, long)): this.cache.__Tag == org/apache/roller/weblogger/util/LRUCache2$LRULinkedHashMap
    //#post(void org.apache.roller.weblogger.util.LRUCache2(LRUCache2$Environment, int, long)): this.cache.maxsize == maxsize
    //#post(void org.apache.roller.weblogger.util.LRUCache2(LRUCache2$Environment, int, long)): this.cache.maxsize in -1_610_612_737..3_221_225_471
    //#unanalyzed(void org.apache.roller.weblogger.util.LRUCache2(LRUCache2$Environment, int, long)): Effects-of-calling:java.util.LinkedHashMap
        this.environment = environment;
        this.timeout = timeout;
        this.cache = new LRULinkedHashMap(maxsize);
    }
    //#LRUCache2.java:64: end of method: void org.apache.roller.weblogger.util.LRUCache2.org.apache.roller.weblogger.util.LRUCache2(LRUCache2$Environment, int, long)

    public synchronized void put(Object key, Object value)
    {
        CacheEntry entry = new CacheEntry(value, environment
    //#LRUCache2.java:68: method: void org.apache.roller.weblogger.util.LRUCache2.put(Object, Object)
    //#LRUCache2.java:68: Warning: suspicious precondition
    //#    the precondition for this.environment.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.util.LRUCache2
    //#    method: void put(Object, Object)
    //#    suspicious precondition index: [5]
    //#input(void put(Object, Object)): key
    //#input(void put(Object, Object)): org/apache/roller/weblogger/util/LRUCache2$DefaultEnvironment.__Dispatch_Table.getCurrentTimeInMillis()J
    //#input(void put(Object, Object)): org/apache/roller/weblogger/util/LRUCache2$Environment.__Descendant_Table[org/apache/roller/weblogger/util/LRUCache2$DefaultEnvironment]
    //#input(void put(Object, Object)): org/apache/roller/weblogger/util/LRUCache2$Environment.__Descendant_Table[org/apache/roller/weblogger/util/LRUCache2$Environment]
    //#input(void put(Object, Object)): org/apache/roller/weblogger/util/LRUCache2$Environment.__Descendant_Table[others]
    //#input(void put(Object, Object)): org/apache/roller/weblogger/util/LRUCache2$Environment.__Dispatch_Table.getCurrentTimeInMillis()J
    //#input(void put(Object, Object)): this
    //#input(void put(Object, Object)): this.cache
    //#input(void put(Object, Object)): this.environment
    //#input(void put(Object, Object)): this.environment.__Tag
    //#input(void put(Object, Object)): value
    //#pre[3] (void put(Object, Object)): this.cache != null
    //#pre[4] (void put(Object, Object)): this.environment != null
    //#pre[5] (void put(Object, Object)): this.environment.__Tag in {org/apache/roller/weblogger/util/LRUCache2$DefaultEnvironment, org/apache/roller/weblogger/util/LRUCache2$Environment}
    //#unanalyzed(void put(Object, Object)): Effects-of-calling:java.lang.System:currentTimeMillis
                        .getCurrentTimeInMillis());
        cache.put(key, entry);
    }
    //#LRUCache2.java:71: end of method: void org.apache.roller.weblogger.util.LRUCache2.put(Object, Object)

    public Object get(Object key)
    {
        Object value = null;
    //#LRUCache2.java:75: method: Object org.apache.roller.weblogger.util.LRUCache2.get(Object)
    //#LRUCache2.java:75: Warning: suspicious precondition
    //#    the precondition for this.environment.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.util.LRUCache2
    //#    method: Object get(Object)
    //#    suspicious precondition index: [5]
    //#    Attribs:  Soft
    //#input(Object get(Object)): key
    //#input(Object get(Object)): org/apache/roller/weblogger/util/LRUCache2$CacheEntry.__Descendant_Table[org/apache/roller/weblogger/util/LRUCache2$CacheEntry]
    //#input(Object get(Object)): org/apache/roller/weblogger/util/LRUCache2$CacheEntry.__Descendant_Table[others]
    //#input(Object get(Object)): org/apache/roller/weblogger/util/LRUCache2$CacheEntry.__Dispatch_Table.getTimeCached()J
    //#input(Object get(Object)): org/apache/roller/weblogger/util/LRUCache2$CacheEntry.__Dispatch_Table.getValue()Ljava/lang/Object;
    //#input(Object get(Object)): org/apache/roller/weblogger/util/LRUCache2$DefaultEnvironment.__Dispatch_Table.getCurrentTimeInMillis()J
    //#input(Object get(Object)): org/apache/roller/weblogger/util/LRUCache2$Environment.__Descendant_Table[org/apache/roller/weblogger/util/LRUCache2$DefaultEnvironment]
    //#input(Object get(Object)): org/apache/roller/weblogger/util/LRUCache2$Environment.__Descendant_Table[org/apache/roller/weblogger/util/LRUCache2$Environment]
    //#input(Object get(Object)): org/apache/roller/weblogger/util/LRUCache2$Environment.__Descendant_Table[others]
    //#input(Object get(Object)): org/apache/roller/weblogger/util/LRUCache2$Environment.__Dispatch_Table.getCurrentTimeInMillis()J
    //#input(Object get(Object)): this
    //#input(Object get(Object)): this.cache
    //#input(Object get(Object)): this.environment
    //#input(Object get(Object)): this.environment.__Tag
    //#input(Object get(Object)): this.timeout
    //#output(Object get(Object)): return_value
    //#pre[3] (Object get(Object)): this.cache != null
    //#pre[4] (Object get(Object)): (soft) this.environment != null
    //#pre[5] (Object get(Object)): (soft) this.environment.__Tag in {org/apache/roller/weblogger/util/LRUCache2$DefaultEnvironment, org/apache/roller/weblogger/util/LRUCache2$Environment}
    //#pre[6] (Object get(Object)): (soft) init'ed(this.timeout)
    //#presumption(Object get(Object)): java.util.Map:get(...).__Tag@79 == org/apache/roller/weblogger/util/LRUCache2$CacheEntry
    //#post(Object get(Object)): init'ed(return_value)
    //#unanalyzed(Object get(Object)): Effects-of-calling:java.lang.System:currentTimeMillis
    //#test_vector(Object get(Object)): java.util.Map:get(...)@79: Addr_Set{null}, Inverse{null}
        CacheEntry entry = null;
    //#LRUCache2.java:76: Warning: unused assignment
    //#    unused assignment into entry
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.util.LRUCache2
    //#    method: Object get(Object)
    //#    Attribs:  Uncertain
        synchronized(this)
        {
            entry = (CacheEntry) cache.get(key);
        }
        if (entry != null)
        {
            if (environment.getCurrentTimeInMillis() - entry.getTimeCached() < timeout)
            {
                value = entry.getValue();
            }
            else
            {
                cache.remove(entry);
            }
        }
        return value;
    //#LRUCache2.java:92: end of method: Object org.apache.roller.weblogger.util.LRUCache2.get(Object)
    }

    public synchronized void purge()
    {
        cache.clear();
    //#LRUCache2.java:97: method: void org.apache.roller.weblogger.util.LRUCache2.purge()
    //#input(void purge()): this
    //#input(void purge()): this.cache
    //#pre[2] (void purge()): this.cache != null
    }
    //#LRUCache2.java:98: end of method: void org.apache.roller.weblogger.util.LRUCache2.purge()

    public synchronized void purge(String[] patterns)
    {
        List purgeList = new ArrayList();
    //#LRUCache2.java:102: method: void org.apache.roller.weblogger.util.LRUCache2.purge(String[])
    //#input(void purge(String[])): patterns
    //#input(void purge(String[])): patterns.length
    //#input(void purge(String[])): patterns[0..4_294_967_295]
    //#input(void purge(String[])): this
    //#input(void purge(String[])): this.cache
    //#pre[5] (void purge(String[])): this.cache != null
    //#pre[1] (void purge(String[])): (soft) patterns != null
    //#pre[2] (void purge(String[])): (soft) patterns.length <= 4_294_967_295
    //#pre[3] (void purge(String[])): (soft) init'ed(patterns[0..4_294_967_295])
    //#presumption(void purge(String[])): java.util.Iterator:next(...)@106 != null
    //#presumption(void purge(String[])): java.util.Map:keySet(...)@103 != null
    //#test_vector(void purge(String[])): java.lang.String:indexOf(...)@109: {-1}, {-2_147_483_648..-2, 0..4_294_967_295}
    //#test_vector(void purge(String[])): java.util.Iterator:hasNext(...)@104: {0}, {1}
    //#test_vector(void purge(String[])): java.util.Iterator:hasNext(...)@117: {0}, {1}
        Iterator keys = cache.keySet().iterator();
        while (keys.hasNext())
        {
            String key = (String) keys.next();
            for (int i = 0; i < patterns.length; i++)
            {
                if (key.indexOf(patterns[i]) != -1)
                {
                    purgeList.add(key);
                    break;
                }
            }
        }
        Iterator purgeIter = purgeList.iterator();
        while (purgeIter.hasNext())
        {
            String key = (String) purgeIter.next();
            cache.remove(key);
        }
    }
    //#LRUCache2.java:122: end of method: void org.apache.roller.weblogger.util.LRUCache2.purge(String[])

    public int size()
    {
        return cache.size();
    //#LRUCache2.java:126: method: int org.apache.roller.weblogger.util.LRUCache2.size()
    //#input(int size()): this
    //#input(int size()): this.cache
    //#output(int size()): return_value
    //#pre[2] (int size()): this.cache != null
    //#post(int size()): init'ed(return_value)
    //#LRUCache2.java:126: end of method: int org.apache.roller.weblogger.util.LRUCache2.size()
    }
    public interface Environment
    {
        public long getCurrentTimeInMillis();
    }
    public static class DefaultEnvironment implements Environment
    //#LRUCache2.java:132: method: void org.apache.roller.weblogger.util.LRUCache2$DefaultEnvironment.org.apache.roller.weblogger.util.LRUCache2$DefaultEnvironment()
    //#LRUCache2.java:132: end of method: void org.apache.roller.weblogger.util.LRUCache2$DefaultEnvironment.org.apache.roller.weblogger.util.LRUCache2$DefaultEnvironment()
    {
        public long getCurrentTimeInMillis()
        {
            return System.currentTimeMillis();
    //#LRUCache2.java:136: method: long org.apache.roller.weblogger.util.LRUCache2$DefaultEnvironment.getCurrentTimeInMillis()
    //#output(long getCurrentTimeInMillis()): return_value
    //#post(long getCurrentTimeInMillis()): init'ed(return_value)
    //#LRUCache2.java:136: end of method: long org.apache.roller.weblogger.util.LRUCache2$DefaultEnvironment.getCurrentTimeInMillis()
        }
    }
    private static class CacheEntry
    {
        private Object value;
        private long timeCached = -1;

        public CacheEntry(Object value, long timeCached)
        {
    //#LRUCache2.java:145: method: void org.apache.roller.weblogger.util.LRUCache2$CacheEntry.org.apache.roller.weblogger.util.LRUCache2$CacheEntry(Object, long)
    //#input(void org.apache.roller.weblogger.util.LRUCache2$CacheEntry(Object, long)): this
    //#input(void org.apache.roller.weblogger.util.LRUCache2$CacheEntry(Object, long)): timeCached
    //#input(void org.apache.roller.weblogger.util.LRUCache2$CacheEntry(Object, long)): value
    //#output(void org.apache.roller.weblogger.util.LRUCache2$CacheEntry(Object, long)): this.timeCached
    //#output(void org.apache.roller.weblogger.util.LRUCache2$CacheEntry(Object, long)): this.value
    //#post(void org.apache.roller.weblogger.util.LRUCache2$CacheEntry(Object, long)): this.timeCached == timeCached
    //#post(void org.apache.roller.weblogger.util.LRUCache2$CacheEntry(Object, long)): init'ed(this.timeCached)
    //#post(void org.apache.roller.weblogger.util.LRUCache2$CacheEntry(Object, long)): this.value == value
    //#post(void org.apache.roller.weblogger.util.LRUCache2$CacheEntry(Object, long)): init'ed(this.value)
            this.timeCached = timeCached;
            this.value = value;
        }
    //#LRUCache2.java:148: end of method: void org.apache.roller.weblogger.util.LRUCache2$CacheEntry.org.apache.roller.weblogger.util.LRUCache2$CacheEntry(Object, long)

        public long getTimeCached()
        {
            return timeCached;
    //#LRUCache2.java:152: method: long org.apache.roller.weblogger.util.LRUCache2$CacheEntry.getTimeCached()
    //#input(long getTimeCached()): this
    //#input(long getTimeCached()): this.timeCached
    //#output(long getTimeCached()): return_value
    //#pre[2] (long getTimeCached()): init'ed(this.timeCached)
    //#post(long getTimeCached()): return_value == this.timeCached
    //#post(long getTimeCached()): init'ed(return_value)
    //#LRUCache2.java:152: end of method: long org.apache.roller.weblogger.util.LRUCache2$CacheEntry.getTimeCached()
        }

        public Object getValue()
        {
            return value;
    //#LRUCache2.java:157: method: Object org.apache.roller.weblogger.util.LRUCache2$CacheEntry.getValue()
    //#input(Object getValue()): this
    //#input(Object getValue()): this.value
    //#output(Object getValue()): return_value
    //#pre[2] (Object getValue()): init'ed(this.value)
    //#post(Object getValue()): return_value == this.value
    //#post(Object getValue()): init'ed(return_value)
    //#LRUCache2.java:157: end of method: Object org.apache.roller.weblogger.util.LRUCache2$CacheEntry.getValue()
        }
    }
    
    // David Flanaghan: http://www.davidflanagan.com/blog/000014.html
    private static class LRULinkedHashMap extends LinkedHashMap
    {
        protected int maxsize;

        public LRULinkedHashMap(int maxsize)
        {
            super(maxsize * 4 / 3 + 1, 0.75f, true);
    //#LRUCache2.java:168: method: void org.apache.roller.weblogger.util.LRUCache2$LRULinkedHashMap.org.apache.roller.weblogger.util.LRUCache2$LRULinkedHashMap(int)
    //#input(void org.apache.roller.weblogger.util.LRUCache2$LRULinkedHashMap(int)): maxsize
    //#input(void org.apache.roller.weblogger.util.LRUCache2$LRULinkedHashMap(int)): this
    //#output(void org.apache.roller.weblogger.util.LRUCache2$LRULinkedHashMap(int)): this.maxsize
    //#pre[2] (void org.apache.roller.weblogger.util.LRUCache2$LRULinkedHashMap(int)): maxsize in -1_610_612_737..3_221_225_471
    //#post(void org.apache.roller.weblogger.util.LRUCache2$LRULinkedHashMap(int)): this.maxsize == maxsize
    //#post(void org.apache.roller.weblogger.util.LRUCache2$LRULinkedHashMap(int)): this.maxsize in -1_610_612_737..3_221_225_471
            this.maxsize = maxsize;
        }
    //#LRUCache2.java:170: end of method: void org.apache.roller.weblogger.util.LRUCache2$LRULinkedHashMap.org.apache.roller.weblogger.util.LRUCache2$LRULinkedHashMap(int)

        protected boolean removeEldestEntry(Map.Entry eldest)
        {
            return this.size() > this.maxsize;
    //#LRUCache2.java:174: method: bool org.apache.roller.weblogger.util.LRUCache2$LRULinkedHashMap.removeEldestEntry(Map$Entry)
    //#LRUCache2.java:174: Warning: method not available
    //#    -- call on int org.apache.roller.weblogger.util.LRUCache2$LRULinkedHashMap:size()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.util.LRUCache2$LRULinkedHashMap
    //#    method: bool removeEldestEntry(Map$Entry)
    //#    unanalyzed callee: int org.apache.roller.weblogger.util.LRUCache2$LRULinkedHashMap:size()
    //#input(bool removeEldestEntry(Map$Entry)): this
    //#input(bool removeEldestEntry(Map$Entry)): this.maxsize
    //#output(bool removeEldestEntry(Map$Entry)): return_value
    //#pre[2] (bool removeEldestEntry(Map$Entry)): init'ed(this.maxsize)
    //#post(bool removeEldestEntry(Map$Entry)): init'ed(return_value)
    //#LRUCache2.java:174: end of method: bool org.apache.roller.weblogger.util.LRUCache2$LRULinkedHashMap.removeEldestEntry(Map$Entry)
        }
    }
}
    //#output(org.apache.roller.weblogger.util.LRUCache2$CacheEntry__static_init): __Descendant_Table[org/apache/roller/weblogger/util/LRUCache2$CacheEntry]
    //#output(org.apache.roller.weblogger.util.LRUCache2$CacheEntry__static_init): __Dispatch_Table.getTimeCached()J
    //#output(org.apache.roller.weblogger.util.LRUCache2$CacheEntry__static_init): __Dispatch_Table.getValue()Ljava/lang/Object;
    //#post(org.apache.roller.weblogger.util.LRUCache2$CacheEntry__static_init): __Descendant_Table[org/apache/roller/weblogger/util/LRUCache2$CacheEntry] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.util.LRUCache2$CacheEntry__static_init): __Dispatch_Table.getTimeCached()J == &getTimeCached
    //#post(org.apache.roller.weblogger.util.LRUCache2$CacheEntry__static_init): __Dispatch_Table.getValue()Ljava/lang/Object; == &getValue
    //#LRUCache2.java:: end of method: org.apache.roller.weblogger.util.LRUCache2$CacheEntry.org.apache.roller.weblogger.util.LRUCache2$CacheEntry__static_init
    //#LRUCache2.java:: end of class: org.apache.roller.weblogger.util.LRUCache2$CacheEntry
    //#output(org.apache.roller.weblogger.util.LRUCache2$LRULinkedHashMap__static_init): __Descendant_Table[org/apache/roller/weblogger/util/LRUCache2$LRULinkedHashMap]
    //#output(org.apache.roller.weblogger.util.LRUCache2$LRULinkedHashMap__static_init): __Dispatch_Table.removeEldestEntry(Ljava/util/Map$Entry;)Z
    //#post(org.apache.roller.weblogger.util.LRUCache2$LRULinkedHashMap__static_init): __Descendant_Table[org/apache/roller/weblogger/util/LRUCache2$LRULinkedHashMap] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.util.LRUCache2$LRULinkedHashMap__static_init): __Dispatch_Table.removeEldestEntry(Ljava/util/Map$Entry;)Z == &removeEldestEntry
    //#LRUCache2.java:: end of method: org.apache.roller.weblogger.util.LRUCache2$LRULinkedHashMap.org.apache.roller.weblogger.util.LRUCache2$LRULinkedHashMap__static_init
    //#LRUCache2.java:: end of class: org.apache.roller.weblogger.util.LRUCache2$LRULinkedHashMap
    //#output(org.apache.roller.weblogger.util.LRUCache2$Environment__static_init): __Descendant_Table[org/apache/roller/weblogger/util/LRUCache2$Environment]
    //#output(org.apache.roller.weblogger.util.LRUCache2$Environment__static_init): __Dispatch_Table.getCurrentTimeInMillis()J
    //#post(org.apache.roller.weblogger.util.LRUCache2$Environment__static_init): __Descendant_Table[org/apache/roller/weblogger/util/LRUCache2$Environment] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.util.LRUCache2$Environment__static_init): __Dispatch_Table.getCurrentTimeInMillis()J == &getCurrentTimeInMillis
    //#LRUCache2.java:: end of method: org.apache.roller.weblogger.util.LRUCache2$Environment.org.apache.roller.weblogger.util.LRUCache2$Environment__static_init
    //#LRUCache2.java:: end of class: org.apache.roller.weblogger.util.LRUCache2$Environment
    //#output(org.apache.roller.weblogger.util.LRUCache2$DefaultEnvironment__static_init): __Descendant_Table[org/apache/roller/weblogger/util/LRUCache2$DefaultEnvironment]
    //#output(org.apache.roller.weblogger.util.LRUCache2$DefaultEnvironment__static_init): __Dispatch_Table.getCurrentTimeInMillis()J
    //#output(org.apache.roller.weblogger.util.LRUCache2$DefaultEnvironment__static_init): org/apache/roller/weblogger/util/LRUCache2$Environment.__Descendant_Table[org/apache/roller/weblogger/util/LRUCache2$DefaultEnvironment]
    //#post(org.apache.roller.weblogger.util.LRUCache2$DefaultEnvironment__static_init): __Descendant_Table[org/apache/roller/weblogger/util/LRUCache2$DefaultEnvironment] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.util.LRUCache2$DefaultEnvironment__static_init): org/apache/roller/weblogger/util/LRUCache2$Environment.__Descendant_Table[org/apache/roller/weblogger/util/LRUCache2$DefaultEnvironment] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.util.LRUCache2$DefaultEnvironment__static_init): __Dispatch_Table.getCurrentTimeInMillis()J == &getCurrentTimeInMillis
    //#LRUCache2.java:: end of method: org.apache.roller.weblogger.util.LRUCache2$DefaultEnvironment.org.apache.roller.weblogger.util.LRUCache2$DefaultEnvironment__static_init
    //#LRUCache2.java:: end of class: org.apache.roller.weblogger.util.LRUCache2$DefaultEnvironment
    //#output(org.apache.roller.weblogger.util.LRUCache2__static_init): __Descendant_Table[org/apache/roller/weblogger/util/LRUCache2]
    //#output(org.apache.roller.weblogger.util.LRUCache2__static_init): __Dispatch_Table.get(Ljava/lang/Object;)Ljava/lang/Object;
    //#output(org.apache.roller.weblogger.util.LRUCache2__static_init): __Dispatch_Table.purge()V
    //#output(org.apache.roller.weblogger.util.LRUCache2__static_init): __Dispatch_Table.purge([Ljava/lang/String;)V
    //#output(org.apache.roller.weblogger.util.LRUCache2__static_init): __Dispatch_Table.put(Ljava/lang/Object;Ljava/lang/Object;)V
    //#output(org.apache.roller.weblogger.util.LRUCache2__static_init): __Dispatch_Table.size()I
    //#post(org.apache.roller.weblogger.util.LRUCache2__static_init): __Descendant_Table[org/apache/roller/weblogger/util/LRUCache2] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.util.LRUCache2__static_init): __Dispatch_Table.get(Ljava/lang/Object;)Ljava/lang/Object; == &get
    //#post(org.apache.roller.weblogger.util.LRUCache2__static_init): __Dispatch_Table.purge()V == &purge
    //#post(org.apache.roller.weblogger.util.LRUCache2__static_init): __Dispatch_Table.purge([Ljava/lang/String;)V == &purge
    //#post(org.apache.roller.weblogger.util.LRUCache2__static_init): __Dispatch_Table.put(Ljava/lang/Object;Ljava/lang/Object;)V == &put
    //#post(org.apache.roller.weblogger.util.LRUCache2__static_init): __Dispatch_Table.size()I == &size
    //#LRUCache2.java:: end of method: org.apache.roller.weblogger.util.LRUCache2.org.apache.roller.weblogger.util.LRUCache2__static_init
    //#LRUCache2.java:: end of class: org.apache.roller.weblogger.util.LRUCache2
