summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--java/src/com/zerotier/sdk/VirtualNetworkRoute.java51
1 files changed, 49 insertions, 2 deletions
diff --git a/java/src/com/zerotier/sdk/VirtualNetworkRoute.java b/java/src/com/zerotier/sdk/VirtualNetworkRoute.java
index 738c4158..b89dce7b 100644
--- a/java/src/com/zerotier/sdk/VirtualNetworkRoute.java
+++ b/java/src/com/zerotier/sdk/VirtualNetworkRoute.java
@@ -29,9 +29,14 @@ package com.zerotier.sdk;
import java.net.InetSocketAddress;
-public final class VirtualNetworkRoute
+public final class VirtualNetworkRoute implements Comparable<VirtualNetworkRoute>
{
- private VirtualNetworkRoute() {}
+ private VirtualNetworkRoute() {
+ target = null;
+ via = null;
+ flags = 0;
+ metric = 0;
+ }
/**
* Target network / netmask bits (in port field) or NULL or 0.0.0.0/0 for default
@@ -52,4 +57,46 @@ public final class VirtualNetworkRoute
* Route metric (not currently used)
*/
public int metric;
+
+
+ @Override
+ public int compareTo(VirtualNetworkRoute other) {
+ return target.toString().compareTo(other.target.toString());
+ }
+
+ public boolean equals(VirtualNetworkRoute other) {
+ boolean targetEquals;
+ if (target == null && other.target == null) {
+ targetEquals = true;
+ }
+ else if (target == null && other.target != null) {
+ targetEquals = false;
+ }
+ else if (target != null && other.target == null) {
+ targetEquals = false;
+ }
+ else {
+ targetEquals = target.equals(other.target);
+ }
+
+
+ boolean viaEquals;
+ if (via == null && other.via == null) {
+ viaEquals = true;
+ }
+ else if (via == null && other.via != null) {
+ viaEquals = false;
+ }
+ else if (via != null && other.via == null) {
+ viaEquals = false;
+ }
+ else {
+ viaEquals = via.equals(other.via);
+ }
+
+ return viaEquals &&
+ viaEquals &&
+ flags == other.flags &&
+ metric == other.metric;
+ }
}