Author: nextgens
Date: 2008-08-08 07:29:06 +0000 (Fri, 08 Aug 2008)
New Revision: 21659

Modified:
   trunk/freenet/src/freenet/support/TimeSortedHashtable.java
Log:
make TimeSortedHashtable implement Cloneable

Modified: trunk/freenet/src/freenet/support/TimeSortedHashtable.java
===================================================================
--- trunk/freenet/src/freenet/support/TimeSortedHashtable.java  2008-08-07 
22:11:21 UTC (rev 21658)
+++ trunk/freenet/src/freenet/support/TimeSortedHashtable.java  2008-08-08 
07:29:06 UTC (rev 21659)
@@ -9,8 +9,18 @@
 /**
  * Variant on LRUHashtable which provides an efficient how-many-since-time-T 
operation.
  */
-public class TimeSortedHashtable {
-
+public class TimeSortedHashtable implements Cloneable {
+       
+       public TimeSortedHashtable() {
+               this.elements = new TreeSet(new MyComparator());
+               this.valueToElement = new HashMap();
+       }
+       
+       private TimeSortedHashtable(TimeSortedHashtable c) {
+               this.elements = new TreeSet(c.elements);
+               this.valueToElement = new HashMap(c.valueToElement);
+       }
+       
        private static class Element {

                Element(long t, Comparable v) {
@@ -54,9 +64,13 @@

        }

-    private final TreeSet elements = new TreeSet(new MyComparator());
-    private final HashMap valueToElement = new HashMap();
+    private final TreeSet elements;
+    private final HashMap valueToElement;

+    public TimeSortedHashtable clone() {
+           return new TimeSortedHashtable(this);
+    }
+    
     public final void push(Comparable value) {
        push(value, System.currentTimeMillis());
     }


Reply via email to