🔥 Remove unused import
[rhynodge.git] / src / main / java / net / pterodactylus / rhynodge / states / OutputState.java
1 package net.pterodactylus.rhynodge.states;
2
3 import java.util.Optional;
4
5 import javax.annotation.Nonnull;
6 import javax.annotation.Nullable;
7
8 import net.pterodactylus.rhynodge.State;
9
10 /**
11  * {@link State} implementation that can expose itself as plain text and/or
12  * HTML.
13  *
14  * @author <a href="mailto:bombe@pterodactylus.net">David â€˜Bombe’ Roden</a>
15  */
16 public class OutputState extends AbstractState {
17
18         private final Optional<String> plainTextOutput;
19         private final Optional<String> htmlOutput;
20
21         public OutputState() {
22                 this(Optional.<String>empty(), Optional.<String>empty());
23         }
24
25         public OutputState(Optional<String> plainTextOutput, Optional<String> htmlOutput) {
26                 this.plainTextOutput = plainTextOutput;
27                 this.htmlOutput = htmlOutput;
28         }
29
30         @Override
31         public boolean isEmpty() {
32                 return !plainTextOutput.isPresent() && !htmlOutput.isPresent();
33         }
34
35         @Nonnull
36         @Override
37         protected String plainText() {
38                 return plainTextOutput.orElse("");
39         }
40
41         @Nullable
42         @Override
43         protected String htmlText() {
44                 return htmlOutput.orElse(null);
45         }
46
47 }