Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Update copyright lines with new year.
[simgrid.git] / examples / java / dht / kademlia / Answer.java
index a18bc2a..28a9d4c 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2014, 2016. The SimGrid Team.
+/* Copyright (c) 2012-2019. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -19,20 +19,21 @@ public class Answer {
     nodes = new ArrayList<>();
   }
 
-  int getDestinationId() {
+  protected int getDestinationId() {
     return destinationId;
   }
 
-  ArrayList<Contact> getNodes() {
+  protected ArrayList<Contact> getNodes() {
     return nodes;
   }
 
-  int size() {
+  protected int size() {
     return nodes.size();
   }
 
-  public void remove(int index) {
-    nodes.remove(index);
+  public void trim() {
+    if (nodes.size() > Common.BUCKET_SIZE)
+      nodes.subList(nodes.size() - Common.BUCKET_SIZE, nodes.size()).clear();
   }
 
   public void add(Contact contact) {
@@ -51,15 +52,14 @@ public class Answer {
     }
     Collections.sort(nodes);
     //Trim the list
-    while (answer.size() > Common.BUCKET_SIZE) {
-      answer.remove(answer.size() - 1);
-    }
+    answer.trim();
+
     return nbAdded;
   }
 
   /* Returns if the destination has been found */
   public boolean destinationFound() {
-    if (nodes.size() < 1) {
+    if (nodes.isEmpty()) {
       return false;
     }
     Contact tail = nodes.get(0);