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;
11 * {@link State} implementation that can expose itself as plain text and/or
14 * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
16 public class OutputState extends AbstractState {
18 private final Optional<String> plainTextOutput;
19 private final Optional<String> htmlOutput;
21 public OutputState() {
22 this(Optional.<String>empty(), Optional.<String>empty());
25 public OutputState(Optional<String> plainTextOutput, Optional<String> htmlOutput) {
26 this.plainTextOutput = plainTextOutput;
27 this.htmlOutput = htmlOutput;
31 public boolean isEmpty() {
32 return !plainTextOutput.isPresent() && !htmlOutput.isPresent();
37 protected String plainText() {
38 return plainTextOutput.orElse("");
43 protected String htmlText() {
44 return htmlOutput.orElse(null);