Author: j16sdiz
Date: 2009-04-03 06:43:55 +0000 (Fri, 03 Apr 2009)
New Revision: 26409

Modified:
   trunk/freenet/src/freenet/node/PacketTracker.java
   trunk/freenet/src/freenet/support/IndexableUpdatableSortedLinkedListItem.java
   trunk/freenet/src/freenet/support/UpdatableSortedLinkedListItem.java
   trunk/freenet/src/freenet/support/UpdatableSortedLinkedListItemImpl.java
Log:
Generics for Generics' friends (bug 2512)

Modified: trunk/freenet/src/freenet/node/PacketTracker.java
===================================================================
--- trunk/freenet/src/freenet/node/PacketTracker.java   2009-04-03 06:09:52 UTC 
(rev 26408)
+++ trunk/freenet/src/freenet/node/PacketTracker.java   2009-04-03 06:43:55 UTC 
(rev 26409)
@@ -17,8 +17,8 @@
 import freenet.support.IndexableUpdatableSortedLinkedListItem;
 import freenet.support.LimitedRangeIntByteArrayMap;
 import freenet.support.LimitedRangeIntByteArrayMapElement;
-import freenet.support.Logger;
 import freenet.support.LogThresholdCallback;
+import freenet.support.Logger;
 import freenet.support.ReceivedPacketNumbers;
 import freenet.support.TimeUtil;
 import freenet.support.UpdatableSortedLinkedListItem;
@@ -216,7 +216,7 @@
        }
 
        private abstract class BaseQueuedResend extends PacketActionItem
-               implements IndexableUpdatableSortedLinkedListItem {
+               implements 
IndexableUpdatableSortedLinkedListItem<BaseQueuedResend> {
 
                /** Time at which this item becomes sendable.
                 * When we send a resend request, this is reset to t+500ms.
@@ -243,31 +243,30 @@
                abstract long urgentDelay();
 
                abstract long initialActiveTime(long now);
-               private Item next;
-               private Item prev;
+               private BaseQueuedResend next;
+               private BaseQueuedResend prev;
 
-               public final Item getNext() {
+               public final BaseQueuedResend getNext() {
                        return next;
                }
 
-               public final Item setNext(Item i) {
-                       Item old = next;
-                       next = i;
+               public final BaseQueuedResend setNext(Item i) {
+                       BaseQueuedResend old = next;
+                       next = (BaseQueuedResend)i;
                        return old;
                }
 
-               public Item getPrev() {
+               public BaseQueuedResend getPrev() {
                        return prev;
                }
 
-               public Item setPrev(Item i) {
-                       Item old = prev;
-                       prev = i;
+               public BaseQueuedResend setPrev(Item i) {
+                       BaseQueuedResend old = prev;
+                       prev = (BaseQueuedResend)i;
                        return old;
                }
 
-               public int compareTo(Object o) {
-                       BaseQueuedResend r = (BaseQueuedResend) o;
+               public int compareTo(BaseQueuedResend r) {
                        if(urgentTime > r.urgentTime)
                                return 1;
                        if(urgentTime < r.urgentTime)
@@ -758,9 +757,9 @@
                        acks = new int[length];
                        int i = 0;
 
-                       Iterator it = forgottenQueue.iterator();
+                       Iterator<QueuedForgotten> it = 
forgottenQueue.iterator();
                        while(it.hasNext()) {
-                               QueuedForgotten ack = (QueuedForgotten) 
it.next();
+                               QueuedForgotten ack = it.next();
                                acks[i++] = ack.packetNumber;
                                if(logMINOR)
                                        Logger.minor(this, "Grabbing ack " + 
ack.packetNumber + " from " + this);

Modified: 
trunk/freenet/src/freenet/support/IndexableUpdatableSortedLinkedListItem.java
===================================================================
--- 
trunk/freenet/src/freenet/support/IndexableUpdatableSortedLinkedListItem.java   
    2009-04-03 06:09:52 UTC (rev 26408)
+++ 
trunk/freenet/src/freenet/support/IndexableUpdatableSortedLinkedListItem.java   
    2009-04-03 06:43:55 UTC (rev 26409)
@@ -1,8 +1,8 @@
 package freenet.support;
 
-public interface IndexableUpdatableSortedLinkedListItem extends
-        UpdatableSortedLinkedListItem {
-    
-    public Object indexValue();
+public interface IndexableUpdatableSortedLinkedListItem<T extends 
IndexableUpdatableSortedLinkedListItem<T>> extends
+        UpdatableSortedLinkedListItem<T> {
 
+       public Object indexValue();
+
 }

Modified: trunk/freenet/src/freenet/support/UpdatableSortedLinkedListItem.java
===================================================================
--- trunk/freenet/src/freenet/support/UpdatableSortedLinkedListItem.java        
2009-04-03 06:09:52 UTC (rev 26408)
+++ trunk/freenet/src/freenet/support/UpdatableSortedLinkedListItem.java        
2009-04-03 06:43:55 UTC (rev 26409)
@@ -2,13 +2,14 @@
 
 import freenet.support.DoublyLinkedList.Item;
 
-public interface UpdatableSortedLinkedListItem extends DoublyLinkedList.Item, 
Comparable {
+public interface UpdatableSortedLinkedListItem<T extends 
UpdatableSortedLinkedListItem<T>> extends
+        DoublyLinkedList.Item<T>, Comparable<T> {
 
-    public abstract Item getNext();
+       public abstract T getNext();
 
-    public abstract Item setNext(Item i);
+       public abstract T setNext(Item<?> i);
 
-    public abstract Item getPrev();
+       public abstract T getPrev();
 
-    public abstract Item setPrev(Item i);
+       public abstract T setPrev(Item<?> i);
 }
\ No newline at end of file

Modified: 
trunk/freenet/src/freenet/support/UpdatableSortedLinkedListItemImpl.java
===================================================================
--- trunk/freenet/src/freenet/support/UpdatableSortedLinkedListItemImpl.java    
2009-04-03 06:09:52 UTC (rev 26408)
+++ trunk/freenet/src/freenet/support/UpdatableSortedLinkedListItemImpl.java    
2009-04-03 06:43:55 UTC (rev 26409)
@@ -5,38 +5,39 @@
 /**
  * An item that can be put into an UpdatableSortedLinkedList.
  */
-public abstract class UpdatableSortedLinkedListItemImpl implements 
UpdatableSortedLinkedListItem {
+public abstract class UpdatableSortedLinkedListItemImpl<T extends 
UpdatableSortedLinkedListItemImpl<T>> implements
+        UpdatableSortedLinkedListItem<T> {
 
-    private Item next;
-    private Item prev;
-    
-    public Item getNext() {
-        return next;
-    }
+       private T next;
+       private T prev;
 
-    public Item setNext(Item i) {
-        Item old = next;
-        next = i;
-        return old;
-    }
+       public T getNext() {
+               return next;
+       }
 
-    public Item getPrev() {
-        return prev;
-    }
+       public T setNext(Item<?> i) {
+               T old = next;
+               next = (T) i;
+               return old;
+       }
 
-    public Item setPrev(Item i) {
-        Item old = prev;
-        prev = i;
-        return old;
-    }
-    
-    /*
-     * FIXME: DoublyLinkedList says that this is only for debugging purposes.
-     * Maybe it should be removed completely?
-     */
-    
-    private DoublyLinkedList parentList;
+       public T getPrev() {
+               return prev;
+       }
 
+       public T setPrev(Item<?> i) {
+               T old = prev;
+               prev = (T) i;
+               return old;
+       }
+
+       /*
+        * FIXME: DoublyLinkedList says that this is only for debugging 
purposes. Maybe it should be
+        * removed completely?
+        */
+
+       private DoublyLinkedList parentList;
+
        public DoublyLinkedList getParent() {
                return parentList;
        }
@@ -46,5 +47,5 @@
                parentList = l;
                return oldParent;
        }
-    
+
 }

_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs

Reply via email to