[tor-commits] [onionoo/master] Store family fingerprints more efficiently.
karsten at torproject.org
karsten at torproject.org
Tue Nov 4 09:22:57 UTC 2014
commit b1750dc6a0bb3b4016214c44291da318e74b76d9
Author: Karsten Loesing <karsten.loesing at gmx.net>
Date: Sat Oct 25 15:42:04 2014 +0200
Store family fingerprints more efficiently.
---
.../org/torproject/onionoo/docs/NodeStatus.java | 32 ++++++++++++++++----
1 file changed, 26 insertions(+), 6 deletions(-)
diff --git a/src/main/java/org/torproject/onionoo/docs/NodeStatus.java b/src/main/java/org/torproject/onionoo/docs/NodeStatus.java
index 7f635b6..3a93030 100644
--- a/src/main/java/org/torproject/onionoo/docs/NodeStatus.java
+++ b/src/main/java/org/torproject/onionoo/docs/NodeStatus.java
@@ -4,6 +4,7 @@ package org.torproject.onionoo.docs;
import java.util.Arrays;
import java.util.BitSet;
+import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
@@ -316,13 +317,33 @@ public class NodeStatus extends Document {
return this.recommendedVersion;
}
- private SortedSet<String> familyFingerprints;
+ private String[] familyFingerprints;
public void setFamilyFingerprints(
SortedSet<String> familyFingerprints) {
- this.familyFingerprints = familyFingerprints;
+ this.familyFingerprints = collectionToStringArray(familyFingerprints);
}
public SortedSet<String> getFamilyFingerprints() {
- return this.familyFingerprints;
+ return stringArrayToSortedSet(this.familyFingerprints);
+ }
+
+ private static String[] collectionToStringArray(
+ Collection<String> collection) {
+ String[] stringArray = null;
+ if (collection != null && !collection.isEmpty()) {
+ stringArray = new String[collection.size()];
+ int i = 0;
+ for (String string : collection) {
+ stringArray[i++] = string;
+ }
+ }
+ return stringArray;
+ }
+ private SortedSet<String> stringArrayToSortedSet(String[] stringArray) {
+ SortedSet<String> sortedSet = new TreeSet<String>();
+ if (stringArray != null) {
+ sortedSet.addAll(Arrays.asList(stringArray));
+ }
+ return sortedSet;
}
public NodeStatus(boolean isRelay, String nickname, String fingerprint,
@@ -372,7 +393,7 @@ public class NodeStatus extends Document {
this.aSNumber = aSNumber;
this.contact = contact;
this.recommendedVersion = recommendedVersion;
- this.familyFingerprints = familyFingerprints;
+ this.setFamilyFingerprints(familyFingerprints);
}
public static NodeStatus fromString(String documentString) {
@@ -580,8 +601,7 @@ public class NodeStatus extends Document {
sb.append("\t" + (this.contact != null ? this.contact : ""));
sb.append("\t" + (this.recommendedVersion == null ? "null" :
this.recommendedVersion ? "true" : "false"));
- if (this.familyFingerprints == null ||
- this.familyFingerprints.isEmpty()) {
+ if (this.familyFingerprints == null) {
sb.append("\tnull");
} else {
sb.append("\t");
More information about the tor-commits
mailing list