package com.neverwinterdp.vm.command; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.neverwinterdp.util.JSONSerializer; public class CommandPayload { private Command command ; private CommandResult<?> result ; public CommandPayload() {} public CommandPayload(Command command, CommandResult<?> result) { this.command = command; this.result = result ; } public <T extends Command> T getCommandAs(Class<T> type) { return (T) command; } @JsonDeserialize(using=JSONSerializer.GenericTypeDeserializer.class) public Command getCommand() { return command; } @JsonSerialize(using=JSONSerializer.GenericTypeSerializer.class) public void setCommand(Command command) { this.command = command; } public CommandResult<?> getResult() { return result; } public void setResult(CommandResult<?> result) { this.result = result; } }