diff options
author | Martin <marcin.j.chrzanowski@gmail.com> | 2020-01-11 21:22:59 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-11 21:22:59 +0100 |
commit | 100e3d23b47d9d772d64dd0c7e596cd20de218b9 (patch) | |
tree | 993075dc9df26b3e3206d9d4a075e0adb83e586d /src/main/java/pl/edu/mimuw/cloudatlas/agent/HierarchyConfig.java | |
parent | 9cf66b17165e3b4251dce84500e60f5ef090ba30 (diff) | |
parent | 0feb481f6dac0a7318b6d57f11574f2aaa658ef7 (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.java | 14 |
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; } |