1 package net.pterodactylus.rhynodge.states;
3 import java.util.Optional;
5 import javax.annotation.Nonnull;
6 import javax.annotation.Nullable;
8 import net.pterodactylus.rhynodge.State;
10 import com.fasterxml.jackson.annotation.JsonProperty;
13 * {@link State} implementation that can expose itself as plain text and/or
16 * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
18 public class OutputState extends AbstractState {
20 private final Optional<String> plainTextOutput;
21 private final Optional<String> htmlOutput;
23 public OutputState() {
24 this(Optional.<String>empty(), Optional.<String>empty());
27 public OutputState(Optional<String> plainTextOutput, Optional<String> htmlOutput) {
28 this.plainTextOutput = plainTextOutput;
29 this.htmlOutput = htmlOutput;
33 public boolean isEmpty() {
34 return !plainTextOutput.isPresent() && !htmlOutput.isPresent();
39 protected String plainText() {
40 return plainTextOutput.orElse("");
45 protected String htmlText() {
46 return htmlOutput.orElse(null);