package io.vivarium.net.messages; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import io.vivarium.net.UUIDSerializer; import io.vivarium.util.UUID; import lombok.EqualsAndHashCode; import lombok.ToString; @EqualsAndHashCode(callSuper = true) @ToString public class RequestResourceMessage extends Message { final private UUID _resourceID; final private ResourceFormat _resourceFormat; public RequestResourceMessage(UUID resourceID, ResourceFormat resourceFormat) { this(UUID.randomUUID(), resourceID, resourceFormat); } @JsonCreator public RequestResourceMessage( @JsonProperty("messageID") @JsonSerialize(using = UUIDSerializer.class) UUID messageID, @JsonProperty("resourceID") @JsonSerialize(using = UUIDSerializer.class) UUID resourceID, @JsonProperty("resourceFormat") ResourceFormat resourceFormat) { super(messageID); this._resourceID = resourceID; this._resourceFormat = resourceFormat; } @JsonSerialize(using = UUIDSerializer.class) public UUID getResourceID() { return _resourceID; } public ResourceFormat getResourceFormat() { return _resourceFormat; } }