summaryrefslogtreecommitdiffstats
path: root/controller-api
diff options
context:
space:
mode:
authorJon Marius Venstad <jvenstad@yahoo-inc.com>2018-08-09 10:06:10 +0200
committerJon Marius Venstad <jvenstad@yahoo-inc.com>2018-08-09 10:06:10 +0200
commit18e63233ad9d56bec03aea248a35009f6b25c875 (patch)
tree5708d2e3193423322d338ce0a095df1d6e77407a /controller-api
parent7e4c6503f9e78c55b1f1e187514795557bc55728 (diff)
Reduce Optional usage
Diffstat (limited to 'controller-api')
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/deployment/JobType.java25
1 files changed, 15 insertions, 10 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/deployment/JobType.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/deployment/JobType.java
index b1cbf55a31c..38ee28a5b4d 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/deployment/JobType.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/deployment/JobType.java
@@ -6,6 +6,7 @@ import com.yahoo.config.provision.RegionName;
import com.yahoo.config.provision.SystemName;
import com.yahoo.vespa.hosted.controller.api.integration.zone.ZoneId;
+import java.util.Objects;
import java.util.Optional;
import java.util.stream.Stream;
@@ -42,9 +43,12 @@ public enum JobType {
public String jobName() { return jobName; }
- /** Returns the zone for this job in the given system, or empty if this job does not have a zone */
- public Optional<ZoneId> zone(SystemName system) {
- return Optional.ofNullable(zones.get(system));
+ /** Returns the zone for this job in the given system, or throws if this job does not have a zone */
+ public ZoneId zone(SystemName system) {
+ if ( ! zones.containsKey(system))
+ throw new AssertionError(this + " does not have any zones in " + system + ".");
+
+ return zones.get(system);
}
/** Returns whether this is a production job */
@@ -75,17 +79,18 @@ public enum JobType {
}
/** Returns the job type for the given zone */
- public static Optional<JobType> from(SystemName system, ZoneId zone) {
- return Stream.of(values())
- .filter(job -> job.zone(system).filter(zone::equals).isPresent())
- .findAny();
+ public static JobType from(SystemName system, ZoneId zone) {
+ for (JobType job : values())
+ if (zone.equals(job.zones.get(system)))
+ return job;
+ throw new IllegalArgumentException("No job is known for " + zone + ".");
}
/** Returns the job job type for the given environment and region or null if none */
- public static Optional<JobType> from(SystemName system, Environment environment, RegionName region) {
+ public static JobType from(SystemName system, Environment environment, RegionName region) {
switch (environment) {
- case test: return Optional.of(systemTest);
- case staging: return Optional.of(stagingTest);
+ case test: return systemTest;
+ case staging: return stagingTest;
}
return from(system, ZoneId.from(environment, region));
}