]> gitweb.hhaalo.de Git - discspan-java.git/commitdiff
add: status print class
authorBastian Dehn <hhaalo@arcor.de>
Fri, 4 Feb 2022 19:17:31 +0000 (20:17 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Fri, 4 Feb 2022 19:17:31 +0000 (20:17 +0100)
CMakeLists.txt
src/de/hhaalo/discspan/discspan.java
src/de/hhaalo/discspan/status.java [new file with mode: 0644]
src/de/hhaalo/spandisc/ILogic.java
src/de/hhaalo/spandisc/IStatus.java [new file with mode: 0644]
src/de/hhaalo/spandisc/Logic.java

index 86f9d34151c7ab6550b5fa2120286871aecc6603..1432a7a99b0a5f3ac4f6ad9c72f6e8adf55b877a 100644 (file)
@@ -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")
 
index 37974d0c3e4f346037a48c296e6b9f6df31d5196..0231b111c74bcde861fcb84ffc64c017522ce1be 100644 (file)
@@ -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 (file)
index 0000000..5b2303e
--- /dev/null
@@ -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]
+                               + ")");
+
+       }
+}
index ce68bc7132daa837513138bb81b62f69948cadd1..81517c6432f93eefa7da9ffa14167025239da023 100644 (file)
@@ -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 (file)
index 0000000..2ccecb2
--- /dev/null
@@ -0,0 +1,6 @@
+package de.hhaalo.spandisc;
+
+public interface IStatus
+{
+       public void printStatus(String output, IMedium medium);
+}
index bd4e4d9af374a333bc6db057f40746dea0c02e16..bc9297aa3b3d9180185c075e0d004e7a525f48bd 100644 (file)
@@ -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);
+       }
 }