m-chrzan.xyz
aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/pl/edu/mimuw/cloudatlas/agent/HierarchyConfig.java
diff options
context:
space:
mode:
authorMarcin Chrzanowski <marcin.j.chrzanowski@gmail.com>2020-01-11 21:02:34 +0100
committerMarcin Chrzanowski <marcin.j.chrzanowski@gmail.com>2020-01-11 21:02:34 +0100
commitc631dee52c21df09816ece63d6e6816a408da2f5 (patch)
treeb25afa943ba59a56a668a06f1a72bd3d05f083d5 /src/main/java/pl/edu/mimuw/cloudatlas/agent/HierarchyConfig.java
parent9cf66b17165e3b4251dce84500e60f5ef090ba30 (diff)
Fix things
Diffstat (limited to 'src/main/java/pl/edu/mimuw/cloudatlas/agent/HierarchyConfig.java')
-rw-r--r--src/main/java/pl/edu/mimuw/cloudatlas/agent/HierarchyConfig.java14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/agent/HierarchyConfig.java b/src/main/java/pl/edu/mimuw/cloudatlas/agent/HierarchyConfig.java
index 04b9b5b..dc5241d 100644
--- a/src/main/java/pl/edu/mimuw/cloudatlas/agent/HierarchyConfig.java
+++ b/src/main/java/pl/edu/mimuw/cloudatlas/agent/HierarchyConfig.java
@@ -71,7 +71,7 @@ public class HierarchyConfig {
List<ZMI> siblings = getSiblings(root, path);
filterEmptyContacts(siblings);
if (siblings.isEmpty()) {
- return selectFallbackContact();
+ return selectFallbackContact(response.getContacts());
}
ZMI zmi = selectZMI(siblings);
ValueSet contactsValue = (ValueSet) zmi.getAttributes().getOrNull("contacts");
@@ -80,8 +80,12 @@ public class HierarchyConfig {
}
// TODO
- private ValueContact selectFallbackContact() throws Exception {
- return null;
+ private ValueContact selectFallbackContact(Set<ValueContact> contacts) throws Exception {
+ if (contacts.isEmpty()) {
+ return null;
+ } else {
+ return selectContactFromSet(contacts);
+ }
}
private ZMI selectZMI(List<ZMI> zmis) throws Exception {
@@ -96,9 +100,9 @@ public class HierarchyConfig {
throw new Exception("empty list passed to selectZMI");
}
- private ValueContact selectContactFromSet(Set<Value> contacts) throws Exception {
+ private <T> ValueContact selectContactFromSet(Set<T> contacts) throws Exception {
int i = random.nextInt(contacts.size());
- for (Value contact : contacts) {
+ for (T contact : contacts) {
if (i == 0) {
return (ValueContact) contact;
}