package io.vivarium.net.jobs; import java.util.Collection; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.google.common.base.Preconditions; import io.vivarium.net.UUIDSerializer; import io.vivarium.util.UUID; import lombok.EqualsAndHashCode; import lombok.ToString; @EqualsAndHashCode(callSuper = true) @ToString public class CreateWorldJob extends Job { @JsonCreator public CreateWorldJob(@JsonProperty("type") JobType jobType, @JsonProperty("jobID") @JsonSerialize(using = UUIDSerializer.class) UUID jobID, @JsonProperty("inputResources") Collection<UUID> inputResources, @JsonProperty("outputResources") Collection<UUID> outputResources, @JsonProperty("dependencies") Collection<UUID> dependencies) { super(jobType, jobID, inputResources, outputResources, dependencies); Preconditions.checkArgument(jobType == JobType.CREATE_WORLD); } public CreateWorldJob(Collection<UUID> inputResources, Collection<UUID> outputResources, Collection<UUID> dependencies) { this(JobType.CREATE_WORLD, UUID.randomUUID(), inputResources, outputResources, dependencies); } }