Coverage Summary for Class: NodeDistanceComparator (co.rsk.net.discovery.table)
Class |
Class, %
|
Method, %
|
Line, %
|
NodeDistanceComparator |
0%
(0/1)
|
0%
(0/2)
|
0%
(0/6)
|
1 /*
2 * This file is part of RskJ
3 * Copyright (C) 2017 RSK Labs Ltd.
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU Lesser General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18
19 package co.rsk.net.discovery.table;
20
21 import co.rsk.net.NodeID;
22 import org.ethereum.net.rlpx.Node;
23
24 import java.util.Comparator;
25
26 /**
27 * Created by mario on 22/02/17.
28 */
29 public class NodeDistanceComparator implements Comparator<Node> {
30 private NodeID targetNodeId;
31 private transient DistanceCalculator calculator;
32
33 public NodeDistanceComparator(NodeID targetNodeId, DistanceCalculator distanceCalculator) {
34 this.targetNodeId = targetNodeId;
35 this.calculator = distanceCalculator;
36 }
37
38 @Override
39 public int compare(Node n1, Node n2) {
40 int distance1 = calculator.calculateDistance(targetNodeId, n1.getId());
41 int distance2 = calculator.calculateDistance(targetNodeId, n2.getId());
42
43 return Integer.compare(distance1, distance2);
44 }
45 }