diff --git a/core/src/main/java/com/openeggbert/main/OpenEggbertGame.java b/core/src/main/java/com/openeggbert/main/OpenEggbertGame.java index 79d9769..6fec830 100644 --- a/core/src/main/java/com/openeggbert/main/OpenEggbertGame.java +++ b/core/src/main/java/com/openeggbert/main/OpenEggbertGame.java @@ -37,6 +37,8 @@ import com.openeggbert.mods.Mod; import com.openeggbert.mods.ModIdentification; import com.openeggbert.screens.GameSpaceListScreen; import com.openeggbert.screens.InitScreen; +import com.openeggbert.storage.Storage; +import com.openeggbert.storage.StorageImplementationLoader; import com.openeggbert.utils.OpenEggbertDisplayMode; import java.util.ArrayList; import java.util.List; @@ -66,6 +68,7 @@ public class OpenEggbertGame extends Game { private AssetsTxt assets; private ConfigDef configDef; private OpenEggbertDisplayMode openEggbertDisplayMode = OpenEggbertDisplayMode.WINDOW; + private Storage storage; public OpenEggbertGame() { this(null, null); @@ -80,6 +83,13 @@ public class OpenEggbertGame extends Game { this.currentDirectory = currentDirectory; } + + public Storage getStorage() { + if(storage == null) { + this.storage = StorageImplementationLoader.getStorage(); + } + return storage; + } @Override public void create() { diff --git a/core/src/main/java/com/openeggbert/screens/AbstractOpenEggbertScreen.java b/core/src/main/java/com/openeggbert/screens/AbstractOpenEggbertScreen.java index 3a54150..cea0ca7 100644 --- a/core/src/main/java/com/openeggbert/screens/AbstractOpenEggbertScreen.java +++ b/core/src/main/java/com/openeggbert/screens/AbstractOpenEggbertScreen.java @@ -63,6 +63,7 @@ public abstract class AbstractOpenEggbertScreen extends ScreenAdapter { } private void loadBackgroundTextureIfNeeded() { + if(true) return;//todo if (getBackgroundFileName().isEmpty()) { return; } diff --git a/core/src/main/java/com/openeggbert/screens/GameSpaceListScreen.java b/core/src/main/java/com/openeggbert/screens/GameSpaceListScreen.java index fed190a..c962457 100644 --- a/core/src/main/java/com/openeggbert/screens/GameSpaceListScreen.java +++ b/core/src/main/java/com/openeggbert/screens/GameSpaceListScreen.java @@ -72,6 +72,8 @@ public class GameSpaceListScreen extends AbstractOpenEggbertScreen { Preferences prefs = Gdx.app.getPreferences("My Preferences"); prefs.putString("test", "abc"); prefs.flush(); + game.getStorage().mkdir("modes"); + game.getStorage().mkdir("game_spaces"); } @Override @@ -175,6 +177,7 @@ public class GameSpaceListScreen extends AbstractOpenEggbertScreen { @Override public void renderOpenEggbertScreen(float delta) { + Gdx.app.log(getClass().getName(), game.getStorage().debug()); timeSeconds += Gdx.graphics.getRawDeltaTime(); if (timeSeconds > 60) { diff --git a/core/src/main/java/com/openeggbert/storage/Storage.java b/core/src/main/java/com/openeggbert/storage/Storage.java index 113e3d0..28efc8a 100644 --- a/core/src/main/java/com/openeggbert/storage/Storage.java +++ b/core/src/main/java/com/openeggbert/storage/Storage.java @@ -89,5 +89,7 @@ public interface Storage { public boolean isdir(String name); public String debug(); + + public void flush(); } diff --git a/core/src/main/java/com/openeggbert/storage/filesystem/DesktopAndroidStorage.java b/core/src/main/java/com/openeggbert/storage/filesystem/DesktopAndroidStorage.java index e253e5c..7514076 100644 --- a/core/src/main/java/com/openeggbert/storage/filesystem/DesktopAndroidStorage.java +++ b/core/src/main/java/com/openeggbert/storage/filesystem/DesktopAndroidStorage.java @@ -120,5 +120,10 @@ public abstract class DesktopAndroidStorage implements Storage { @Override public String debug() { throw new UnsupportedOperationException("Not supported yet."); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody - } + } + + @Override + public void flush() { + //nothing to do + } } diff --git a/core/src/main/java/com/openeggbert/storage/map/MapStorage.java b/core/src/main/java/com/openeggbert/storage/map/MapStorage.java index cb3eee1..92e1a1c 100644 --- a/core/src/main/java/com/openeggbert/storage/map/MapStorage.java +++ b/core/src/main/java/com/openeggbert/storage/map/MapStorage.java @@ -60,11 +60,17 @@ public class MapStorage implements Storage { return workingDirectory + (workingDirectory.equals("/") ? "" : SLASH) + path; } - + + private static final String TWO_DOTS = ".."; + @Override public String cd(String path) { String absolutePath = convertToAbsolutePathIfNeeded(path); + if(path.equals(TWO_DOTS)) { + getParentPath(workingDirectory); + } + if (!exists(path)) { final String msg = "Path does not exist: " + path; logError(msg); @@ -324,4 +330,9 @@ public class MapStorage implements Storage { return sb.toString(); } + @Override + public void flush() { + map.flush(); + } + } diff --git a/core/src/main/java/com/openeggbert/utils/OpenEggbertUtils.java b/core/src/main/java/com/openeggbert/utils/OpenEggbertUtils.java index 123f82c..884d409 100644 --- a/core/src/main/java/com/openeggbert/utils/OpenEggbertUtils.java +++ b/core/src/main/java/com/openeggbert/utils/OpenEggbertUtils.java @@ -28,7 +28,6 @@ import com.openeggbert.entity.common.GameFileType; import com.openeggbert.entity.common.OpenEggbertException; import java.util.ArrayList; import java.util.Arrays; -import java.util.Base64; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; diff --git a/lwjgl3/src/main/java/com/openeggbert/lwjgl3/debugging/StorageCommandWrapper.java b/lwjgl3/src/main/java/com/openeggbert/lwjgl3/debugging/StorageCommandWrapper.java deleted file mode 100644 index 4e62a1f..0000000 --- a/lwjgl3/src/main/java/com/openeggbert/lwjgl3/debugging/StorageCommandWrapper.java +++ /dev/null @@ -1,203 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////// -// Open Eggbert: Free recreation of the computer game Speedy Eggbert. -// Copyright (C) 2024 the original author or authors. -// -// This program is free software: you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation, either version 3 -// of the License, or (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see -// or write to the Free Software -// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -/////////////////////////////////////////////////////////////////////////////////////////////// -package com.openeggbert.lwjgl3.debugging; - -import com.openeggbert.storage.Storage; -import com.openeggbert.storage.map.MemoryStorage; -import java.time.LocalDateTime; -import java.util.Optional; -import java.util.Scanner; -import lombok.AllArgsConstructor; -import lombok.Data; - -/** - * - * @author robertvokac - */ -public class StorageCommandWrapper { - - private StorageCommandWrapper(String userIn, String hostnameIn, Storage storageIn) { - this.user = userIn; - this.hostname = hostnameIn; - this.storage = storageIn; - } - private String user; - private String hostname; - private Storage storage; - -// @AllArgsConstructor -// @Data -// class StorageCommandWrapperResult { -// -// private String output; -// private boolean error; -// } -// -// public StorageCommandWrapperResult execute(String commandWithArguments) { -// return null; -// } - - public static void main(String[] args) { - - Scanner scanner = new Scanner(System.in); - - MemoryStorage memoryStorage = new MemoryStorage(); - - while (true) { - System.out.print("player@openegggbert:" + memoryStorage.pwd() + "$ "); - String argument = scanner.nextLine(); - String[] arguments = argument.split(" "); - int argumentCount = arguments.length - 1; - //System.out.println("argumentCount=" + argumentCount); - Optional argument1 = Optional.ofNullable(argumentCount >= 1 ? arguments[1] : null); - Optional argument2 = Optional.ofNullable(argumentCount >= 2 ? arguments[2] : null); - String command = arguments.length == 0 ? "" : arguments[0]; - - switch (command) { - case "whoami": - print("player");break; - case "hostname": - print("openegggbert");break; - case "uname": - if (argumentCount == 0) { - print("LinuxBashCommandLinePartialEmulation"); - } else { - if (argument1.get().equals("-a")) { - print("LinuxBashCommandLinePartialEmulation openeggbert 0.0.0 (" + LocalDateTime.now().toString().replace("T", " ").substring(0, 10) + ")"); - } else { - print("LinuxBashCommandLinePartialEmulation"); - } - } - break; - case "exit": - return; - case "": - continue; - case "ls": - memoryStorage - .ls() - .stream() - .map(l->{ - String[] a = l.split("/");return a[a.length-1]; - } - ) - .forEach(l -> print(l)); - break; - case "pwd": - print(memoryStorage.pwd()); - break; - - case "depth": - print(memoryStorage.depth()); - break; - case "mkdir": - if (checkArgumentCount(1, argumentCount)) { - String result = memoryStorage.mkdir(argument1.get()); - if (result.isEmpty()) { - System.out.println("New directory was successfully created"); - } else { - System.err.println("Creating new directory failed: " + result); - } - - } - break; - case "touch": - if (checkArgumentCount(1, argumentCount)) { - String result = memoryStorage.touch(argument1.get()); - if (result.isEmpty()) { - System.out.println("New file was successfully created"); - } else { - System.err.println("Creating new directory failed: " + result); - } - - } - break; - case "readtext": - if (checkArgumentCount(1, argumentCount)) { - String result = memoryStorage.readtext(argument1.get()); - if (result != null) { - System.out.println("Text file was successfully loaded"); - System.out.println(result); - } else { - System.err.println("Loading text file failed:"); - } - - } - break; - - case "savetext": - if (checkArgumentCount(2, argumentCount)) { - String result = memoryStorage.savetext(argument1.get(), argument2.get()); - if (result.isEmpty()) { - System.out.println("Text file was successfully saved"); - } else { - System.err.println("Saving text file failed: " + result); - } - - } - break; - case "cd": - String result = argument1.isEmpty() ? memoryStorage.cd() : memoryStorage.cd(argument1.get()); - if (result.isEmpty()) { - System.out.println("Changing working directory was successfully created"); - } else { - System.err.println("Changing working directory failed: " + result); - } - - break; - case "debug": - print(memoryStorage.debug()); - - break; - default: { - System.err.println("Unsupported command: " + command); - } - } - - } - } - - private static void print(int msg) { - print(String.valueOf(msg)); - } - - private static void print(String msg) { - System.out.println(msg); - } - - private static void printError(String msg) { - System.err.println(msg); - } - - private static boolean checkArgumentCount(int wantedCount, int currentCount) { -// System.out.println("wantedCount=" + wantedCount); -// System.out.println("currentCount=" + currentCount); - boolean b = wantedCount < currentCount; -// System.out.println("b=" + b); - if (currentCount < wantedCount) { - - printError("Wanted argument count is: " + wantedCount + ", but the current count of arguments is: " + currentCount); -// System.out.println("return false"); - return false; - } -// System.out.println("return true"); - return true; - } -} diff --git a/lwjgl3/src/main/java/com/openeggbert/lwjgl3/debugging/storage/BaseCommandLine.java b/lwjgl3/src/main/java/com/openeggbert/lwjgl3/debugging/storage/BaseCommandLine.java new file mode 100644 index 0000000..5f7222e --- /dev/null +++ b/lwjgl3/src/main/java/com/openeggbert/lwjgl3/debugging/storage/BaseCommandLine.java @@ -0,0 +1,63 @@ +/////////////////////////////////////////////////////////////////////////////////////////////// +// Open Eggbert: Free recreation of the computer game Speedy Eggbert. +// Copyright (C) 2024 the original author or authors. +// +// This program is free software: you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation, either version 3 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see +// or write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +/////////////////////////////////////////////////////////////////////////////////////////////// +package com.openeggbert.lwjgl3.debugging.storage; + +import java.util.function.Function; + +/** + * + * @author robertvokac + */ +public class BaseCommandLine implements StorageCommand { + + private StorageCommandLine storageCommandLine = null; + private String name; + private final Function function; + + public BaseCommandLine( + StorageCommandLine storageCommandLineIn, String nameIn, Function functionIn + ) { + setStorageCommandLine(storageCommandLineIn); + this.name = nameIn; + this.function = functionIn; + + } + + @Override + public final void setStorageCommandLine(StorageCommandLine storageCommandLineIn) { + storageCommandLine = storageCommandLineIn; + } + + @Override + public final StorageCommandLine getStorageCommandLine() { + return storageCommandLine; + } + + @Override + public String getName() { + return name; + } + + @Override + public StorageCommandResult execute(String commandWithArguments) { + return function.apply(commandWithArguments); + } + +} diff --git a/lwjgl3/src/main/java/com/openeggbert/lwjgl3/debugging/storage/StorageCommand.java b/lwjgl3/src/main/java/com/openeggbert/lwjgl3/debugging/storage/StorageCommand.java new file mode 100644 index 0000000..6b6b7f7 --- /dev/null +++ b/lwjgl3/src/main/java/com/openeggbert/lwjgl3/debugging/storage/StorageCommand.java @@ -0,0 +1,38 @@ +/////////////////////////////////////////////////////////////////////////////////////////////// +// Open Eggbert: Free recreation of the computer game Speedy Eggbert. +// Copyright (C) 2024 the original author or authors. +// +// This program is free software: you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation, either version 3 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see +// or write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +/////////////////////////////////////////////////////////////////////////////////////////////// +package com.openeggbert.lwjgl3.debugging.storage; + +/** + * + * @author robertvokac + */ +public interface StorageCommand { + + public String getName(); + + StorageCommandResult execute(String commandWithArguments); + StorageCommandLine getStorageCommandLine(); + + void setStorageCommandLine(StorageCommandLine storageCommandLine); + static StorageCommandResult emptyNewResult() { + return new StorageCommandResult(); + } + +} diff --git a/lwjgl3/src/main/java/com/openeggbert/lwjgl3/debugging/storage/StorageCommandLine.java b/lwjgl3/src/main/java/com/openeggbert/lwjgl3/debugging/storage/StorageCommandLine.java new file mode 100644 index 0000000..196156b --- /dev/null +++ b/lwjgl3/src/main/java/com/openeggbert/lwjgl3/debugging/storage/StorageCommandLine.java @@ -0,0 +1,277 @@ +/////////////////////////////////////////////////////////////////////////////////////////////// +// Open Eggbert: Free recreation of the computer game Speedy Eggbert. +// Copyright (C) 2024 the original author or authors. +// +// This program is free software: you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation, either version 3 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see +// or write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +/////////////////////////////////////////////////////////////////////////////////////////////// +package com.openeggbert.lwjgl3.debugging.storage; + +import com.openeggbert.storage.Storage; +import com.openeggbert.storage.map.MemoryStorage; +import java.time.LocalDateTime; +import java.util.HashMap; +import java.util.Map; +import java.util.Optional; +import java.util.Scanner; +import java.util.function.Consumer; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + * + * @author robertvokac + */ +public class StorageCommandLine { + + private long startNanoTime = System.nanoTime(); + + private String extractArgument(String arguments, int argumentIndex) { + String[] array = arguments.split(" "); + if(argumentIndex > (array.length - 1)) { + return ""; + } + return array[argumentIndex]; + } + private StorageCommandLine(String userIn, String hostnameIn, Storage storageIn) { + + this.user = userIn; + this.hostname = hostnameIn; + this.storage = storageIn; + + addCommand("whoami", arguments -> modifyResult(result -> result.setOutput(user))); + addCommand("uptime", arguments -> modifyResult(result + -> result.setOutput( + LocalDateTime.now().toString().replace("T", " ").substring(10, 19) + " up " + + (System.nanoTime() - startNanoTime) / 1000000000l / 60l + + " minutes" + + ", 1 user" + ))); + + addCommand("hostname", arguments -> modifyResult(result -> result.setOutput(hostname))); + addCommand("uname", arguments -> modifyResult(result -> result.setOutput( + "LinuxBashCommandLinePartialEmulation" + + + ((extractArgument(arguments, 0).equals("-a")) ? + (hostname + " 0.0.0 (" + + + LocalDateTime.now().toString().replace("T", " ").substring(0, 10) + ")" + ) + : "") + + + + ))); + + + + + + +// 12:31:18 up 2:10, 1 user + commands.keySet().stream().map(k -> commands.get(k)).forEach(c -> c.setStorageCommandLine(this)); + } + + private StorageCommandResult modifyResult(Consumer consumer) { + + StorageCommandResult result = StorageCommand.emptyNewResult(); + consumer.accept(result); + return result; + } + + private void addCommand(String nameIn, Function functionIn) { + StorageCommand storageCommand = new BaseCommandLine(this, nameIn, functionIn); + commands.put(storageCommand.getName(), storageCommand); + } + + private String user; + private String hostname; + private Storage storage; + + private boolean exited = false; + private final Map commands = new HashMap<>(); + + public String getUser() { + return user; + } + + public String getHostname() { + return hostname; + } + + public Storage getStorage() { + return storage; + } + + public boolean isExited() { + return exited; + } + + public StorageCommandResult execute(String commandWithArguments) { + + String[] arguments = commandWithArguments.split(" "); + String command = arguments.length == 0 ? "" : arguments[0]; + + StorageCommand storageCommand = commands.get(command); + if (storageCommand != null) { + return storageCommand.execute(commandWithArguments.substring(command.length())); + } + + int argumentCount = arguments.length - 1; + //System.out.println("argumentCount=" + argumentCount); + Optional argument1 = Optional.ofNullable(argumentCount >= 1 ? arguments[1] : null); + Optional argument2 = Optional.ofNullable(argumentCount >= 2 ? arguments[2] : null); + + StorageCommandResult finalResult = new StorageCommandResult(); + switch (command) { + case "exit": + exited = true; + finalResult.setOutput("Exited"); + break; + case "": + break; + case "ls": + String output = storage + .ls() + .stream() + .map(l -> { + String[] a = l.split("/"); + return a[a.length - 1]; + } + ).collect(Collectors.joining("\n")); + finalResult.setOutput(output); + break; + case "pwd": + finalResult.setOutput(storage.pwd()); + break; + + case "depth": + finalResult.setOutput(storage.depth()); + break; + case "mkdir": + if (checkArgumentCount(1, argumentCount)) { + String r = storage.mkdir(argument1.get()); + if (r.isEmpty()) { + finalResult.setOutput("New directory was successfully created"); + } else { + finalResult.setErrorOutput("Creating new directory failed: " + r); + } + + } + break; + case "touch": + if (checkArgumentCount(1, argumentCount)) { + String result = storage.touch(argument1.get()); + if (result.isEmpty()) { + finalResult.setOutput("New file was successfully created"); + } else { + finalResult.setErrorOutput("Creating new directory failed: " + result); + } + + } + break; + case "readtext": + if (checkArgumentCount(1, argumentCount)) { + String result = storage.readtext(argument1.get()); + if (result != null) { + finalResult.setOutput("Text file was successfully loaded" + "\n\n" + result); + } else { + finalResult.setErrorOutput("Loading text file failed:"); + } + + } + break; + + case "savetext": + if (checkArgumentCount(2, argumentCount)) { + String result = storage.savetext(argument1.get(), argument2.get()); + if (result.isEmpty()) { + finalResult.setOutput("Text file was successfully saved"); + } else { + finalResult.setErrorOutput("Saving text file failed: " + result); + } + + } + break; + case "cd": + String r = argument1.isEmpty() ? storage.cd() : storage.cd(argument1.get()); + if (r.isEmpty()) { + finalResult.setOutput("Changing working directory was successfully created"); + } else { + finalResult.setErrorOutput("Changing working directory failed: " + r); + } + + break; + case "debug": + finalResult.setOutput(storage.debug()); + + break; + default: { + finalResult.setErrorOutput("Unsupported command: " + command); + } + } + return finalResult; + } + + public static void main(String[] args) { + MemoryStorage memoryStorage = new MemoryStorage(); + + StorageCommandLine storageCommandWrapper = new StorageCommandLine("player", "openegggbert", memoryStorage); + Scanner scanner = new Scanner(System.in); + + while (true) { + System.out.print("player@openegggbert:" + memoryStorage.pwd() + "$ "); + String argument = scanner.nextLine(); + + StorageCommandResult result = storageCommandWrapper.execute(argument); + if (result.isError()) { + printError(result.getOutput()); + } else { + print(result.getOutput()); + + } + if (storageCommandWrapper.isExited()) { + break; + } + } + } + + private static void print(int msg) { + print(String.valueOf(msg)); + } + + private static void print(String msg) { + System.out.println(msg); + } + + private static void printError(String msg) { + System.err.println(msg); + } + + private static boolean checkArgumentCount(int wantedCount, int currentCount) { +// System.out.println("wantedCount=" + wantedCount); +// System.out.println("currentCount=" + currentCount); + boolean b = wantedCount < currentCount; +// System.out.println("b=" + b); + if (currentCount < wantedCount) { + + printError("Wanted argument count is: " + wantedCount + ", but the current count of arguments is: " + currentCount); +// System.out.println("return false"); + return false; + } +// System.out.println("return true"); + return true; + } +} diff --git a/lwjgl3/src/main/java/com/openeggbert/lwjgl3/debugging/storage/StorageCommandResult.java b/lwjgl3/src/main/java/com/openeggbert/lwjgl3/debugging/storage/StorageCommandResult.java new file mode 100644 index 0000000..eb81a9a --- /dev/null +++ b/lwjgl3/src/main/java/com/openeggbert/lwjgl3/debugging/storage/StorageCommandResult.java @@ -0,0 +1,68 @@ +/////////////////////////////////////////////////////////////////////////////////////////////// +// Open Eggbert: Free recreation of the computer game Speedy Eggbert. +// Copyright (C) 2024 the original author or authors. +// +// This program is free software: you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation, either version 3 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see +// or write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +/////////////////////////////////////////////////////////////////////////////////////////////// +package com.openeggbert.lwjgl3.debugging.storage; + +/** + * + * @author robertvokac + */ +public class StorageCommandResult { + + public StorageCommandResult() { + this(""); + } + + public StorageCommandResult(String output) { + this(output, false); + } + + public StorageCommandResult(String output, boolean error) { + this.output = output; + this.error = error; + } + + public String getOutput() { + return output; + } + + public boolean isError() { + return error; + } + + public void setOutput(int output) { + setOutput(String.valueOf(output)); + } + + public void setErrorOutput(String output) { + this.output = output; + setError(true); + } + + public void setOutput(String output) { + this.output = output; + } + + public void setError(boolean error) { + this.error = error; + } + + private String output; + private boolean error; +}