m-chrzan.xyz
aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/pl/edu/mimuw/cloudatlas/agent/HierarchyConfig.java
diff options
context:
space:
mode:
authorMartin <marcin.j.chrzanowski@gmail.com>2020-01-11 21:22:59 +0100
committerGitHub <noreply@github.com>2020-01-11 21:22:59 +0100
commit100e3d23b47d9d772d64dd0c7e596cd20de218b9 (patch)
tree993075dc9df26b3e3206d9d4a075e0adb83e586d /src/main/java/pl/edu/mimuw/cloudatlas/agent/HierarchyConfig.java
parent9cf66b17165e3b4251dce84500e60f5ef090ba30 (diff)
parent0feb481f6dac0a7318b6d57f11574f2aaa658ef7 (diff)
Merge pull request #103 from m-chrzan/use-fallbacks
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;
}