♻️ Move output generation to state
[rhynodge.git] / src / main / java / net / pterodactylus / rhynodge / states / FailedState.java
index a9dbba5..6c1d844 100644 (file)
 
 package net.pterodactylus.rhynodge.states;
 
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.io.Writer;
+import javax.annotation.Nonnull;
+
 import net.pterodactylus.rhynodge.State;
 
 /**
@@ -51,6 +57,21 @@ public class FailedState extends AbstractState {
                return true;
        }
 
+       @Nonnull
+       @Override
+       protected String plainText() {
+               if (exception() == null) {
+                       return "Failed";
+               }
+               try (Writer stringWriter = new StringWriter();
+                        PrintWriter printWriter = new PrintWriter(stringWriter)) {
+                       exception().printStackTrace(printWriter);
+                       return "Failed: " + stringWriter.toString();
+               } catch (IOException ioe1) {
+                       return "Failed while rendering exception";
+               }
+       }
+
        //
        // STATIC METHODS
        //