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 SendResourceMessage extends Message { final private UUID _resourceID; final private String _dataString; final private ResourceFormat _resourceFormat; public SendResourceMessage(UUID resourceID, String dataString, ResourceFormat resourceFormat) { this(UUID.randomUUID(), resourceID, dataString, resourceFormat); } @JsonCreator public SendResourceMessage(@JsonProperty("messageID") @JsonSerialize(using = UUIDSerializer.class) UUID messageID, @JsonProperty("resourceID") @JsonSerialize(using = UUIDSerializer.class) UUID resourceID, @JsonProperty("dataString") String dataString, @JsonProperty("resourceFormat") ResourceFormat resourceFormat) { super(messageID); this._resourceID = resourceID; this._dataString = dataString; this._resourceFormat = resourceFormat; } @JsonSerialize(using = UUIDSerializer.class) public UUID getResourceID() { return _resourceID; } public String getDataString() { return _dataString; } public ResourceFormat getResourceFormat() { return _resourceFormat; } }