From 876defb308e65c576971b5d240749abe44104192 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Fri, 4 Feb 2022 20:17:31 +0100 Subject: [PATCH] add: status print class --- CMakeLists.txt | 4 +++- src/de/hhaalo/discspan/discspan.java | 1 + src/de/hhaalo/discspan/status.java | 33 ++++++++++++++++++++++++++++ src/de/hhaalo/spandisc/ILogic.java | 1 + src/de/hhaalo/spandisc/IStatus.java | 6 +++++ src/de/hhaalo/spandisc/Logic.java | 13 ++++++++++- 6 files changed, 56 insertions(+), 2 deletions(-) create mode 100644 src/de/hhaalo/discspan/status.java create mode 100644 src/de/hhaalo/spandisc/IStatus.java diff --git a/CMakeLists.txt b/CMakeLists.txt index 86f9d34..1432a7a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,13 +21,15 @@ set(SRCLIB_FILES "${SRCLIB_PREFIX}/Logic.java" "${SRCLIB_PREFIX}/ISplitter.java" "${SRCLIB_PREFIX}/Splitter.java" - "${SRCLIB_PREFIX}/IAddFileToMedium.java") + "${SRCLIB_PREFIX}/IAddFileToMedium.java" + "${SRCLIB_PREFIX}/IStatus.java") add_jar(spandisc "${SRCLIB_FILES}") set(SRC_PREFIX "src/de/hhaalo/discspan") set(SRC_FILES "${SRC_PREFIX}/discspan.java" + "${SRC_PREFIX}/status.java" "${SRC_PREFIX}/Iparameter.java" "${SRC_PREFIX}/parameter.java") diff --git a/src/de/hhaalo/discspan/discspan.java b/src/de/hhaalo/discspan/discspan.java index 37974d0..0231b11 100644 --- a/src/de/hhaalo/discspan/discspan.java +++ b/src/de/hhaalo/discspan/discspan.java @@ -24,6 +24,7 @@ public class discspan } ILogic logic = new Logic(); + logic.setStatus(new status()); logic.span(param.getInput(), param.getOutput(), param.getSplit()); } } diff --git a/src/de/hhaalo/discspan/status.java b/src/de/hhaalo/discspan/status.java new file mode 100644 index 0000000..5b2303e --- /dev/null +++ b/src/de/hhaalo/discspan/status.java @@ -0,0 +1,33 @@ +package de.hhaalo.discspan; + +import de.hhaalo.spandisc.IStatus; +import de.hhaalo.spandisc.IMedium; + +public class status implements IStatus +{ + public void printStatus(String output, IMedium medium) + { + long humanread = 0; + char[] einheit = { 'B', 'K', 'M', 'G', 'T', 'P' }; + int i = 0; + + humanread = medium.getFreeSpace(); + while (humanread >= 1024) { + humanread /= 1024; + i++; + } + + if (i > einheit.length) + i = 0; + + System.out.println("free space on " + + output + + ": " + + medium.getFreeSpace() + + " bytes (" + + humanread + + " " + einheit[i] + + ")"); + + } +} diff --git a/src/de/hhaalo/spandisc/ILogic.java b/src/de/hhaalo/spandisc/ILogic.java index ce68bc7..81517c6 100644 --- a/src/de/hhaalo/spandisc/ILogic.java +++ b/src/de/hhaalo/spandisc/ILogic.java @@ -3,5 +3,6 @@ package de.hhaalo.spandisc; public interface ILogic { public String getVersion(); + public void setStatus(IStatus status); public void span(String input, String output, long split); } diff --git a/src/de/hhaalo/spandisc/IStatus.java b/src/de/hhaalo/spandisc/IStatus.java new file mode 100644 index 0000000..2ccecb2 --- /dev/null +++ b/src/de/hhaalo/spandisc/IStatus.java @@ -0,0 +1,6 @@ +package de.hhaalo.spandisc; + +public interface IStatus +{ + public void printStatus(String output, IMedium medium); +} diff --git a/src/de/hhaalo/spandisc/Logic.java b/src/de/hhaalo/spandisc/Logic.java index bd4e4d9..bc9297a 100644 --- a/src/de/hhaalo/spandisc/Logic.java +++ b/src/de/hhaalo/spandisc/Logic.java @@ -3,8 +3,10 @@ package de.hhaalo.spandisc; public class Logic implements ILogic { private final String _version = "v0.1"; + private IStatus _status = null; public String getVersion() { return _version; } + public void setStatus(IStatus status) { _status = status; } public void span(String input, String output, long split) { @@ -15,8 +17,17 @@ public class Logic implements ILogic ISplitter splitter = new Splitter(); IMediumCollection col = splitter.splitAll(srcdata); + String outputname = output; for (int i = 0; i < col.getMediumArray().length; i++) { - filehandler.writeFile(String.format("%s%04d", output, col.getMediumArray()[i].getNr()), col.getMediumArray()[i]); + outputname = String.format("%s%04d", output, col.getMediumArray()[i].getNr()); + onStatus(outputname, col.getMediumArray()[i]); + filehandler.writeFile(outputname, col.getMediumArray()[i]); } } + + private void onStatus(String output, IMedium medium) + { + if (_status != null) + _status.printStatus(output, medium); + } } -- 2.39.5