From 107cc9cdfd4a44db9e2c57323b07645fcba46b4e Mon Sep 17 00:00:00 2001
From: Thomas Oster <thomas.oster@rwth-aachen.de>
Date: Tue, 25 Sep 2012 06:36:03 +0200
Subject: [PATCH] Estimate Job Duration is optional

---
 src/com/t_oster/liblasercut/LaserCutter.java     | 16 +++++++++++++++-
 .../liblasercut/drivers/EpilogCutter.java        |  6 ++++++
 .../t_oster/liblasercut/drivers/LaosCutter.java  |  6 ------
 .../t_oster/liblasercut/drivers/Lasersaur.java   |  5 -----
 4 files changed, 21 insertions(+), 12 deletions(-)

diff --git a/src/com/t_oster/liblasercut/LaserCutter.java b/src/com/t_oster/liblasercut/LaserCutter.java
index e8ea2d5..e76d27b 100644
--- a/src/com/t_oster/liblasercut/LaserCutter.java
+++ b/src/com/t_oster/liblasercut/LaserCutter.java
@@ -153,13 +153,27 @@ public abstract class LaserCutter implements Cloneable
    */
   public abstract void setSettingValue(String attribute, String value);
   
+  /**
+   * Override this method, return true and override the
+   * estimateJobDuration-method to allow Programs to use
+   * your driver to estimate the duration of a job before
+   * executing
+   * @return 
+   */
+  public boolean canEstimateJobDuration()
+  {
+    return false;
+  }
   /**
    * Returns an estimated time, how long the job would take
    * in seconds
    * @param job
    * @return 
    */
-  public abstract int estimateJobDuration(LaserJob job);
+  public int estimateJobDuration(LaserJob job)
+  {
+    throw new RuntimeException("Method not implemented");
+  }
   
   public LaserProperty getLaserPropertyForVectorPart()
   {
diff --git a/src/com/t_oster/liblasercut/drivers/EpilogCutter.java b/src/com/t_oster/liblasercut/drivers/EpilogCutter.java
index f694eda..47bdc71 100644
--- a/src/com/t_oster/liblasercut/drivers/EpilogCutter.java
+++ b/src/com/t_oster/liblasercut/drivers/EpilogCutter.java
@@ -848,6 +848,12 @@ abstract class EpilogCutter extends LaserCutter
     return Arrays.asList(attributes);
   }
 
+  @Override
+  public boolean canEstimateJobDuration()
+  {
+    return true;
+  }
+  
   @Override
   public int estimateJobDuration(LaserJob job)
   {
diff --git a/src/com/t_oster/liblasercut/drivers/LaosCutter.java b/src/com/t_oster/liblasercut/drivers/LaosCutter.java
index 1ed40e0..1a0996d 100644
--- a/src/com/t_oster/liblasercut/drivers/LaosCutter.java
+++ b/src/com/t_oster/liblasercut/drivers/LaosCutter.java
@@ -813,12 +813,6 @@ public class LaosCutter extends LaserCutter
     }
   }
 
-  @Override
-  public int estimateJobDuration(LaserJob job)
-  {
-    return 10000;
-  }
-
   @Override
   public LaserCutter clone()
   {
diff --git a/src/com/t_oster/liblasercut/drivers/Lasersaur.java b/src/com/t_oster/liblasercut/drivers/Lasersaur.java
index e51ed7b..78e06a8 100644
--- a/src/com/t_oster/liblasercut/drivers/Lasersaur.java
+++ b/src/com/t_oster/liblasercut/drivers/Lasersaur.java
@@ -544,11 +544,6 @@ public class Lasersaur extends LaserCutter {
     }
   }
 
-  @Override
-  public int estimateJobDuration(LaserJob job) {
-    return 10000;
-  }
-
   @Override
   public LaserCutter clone() {
     Lasersaur clone = new Lasersaur();
-- 
GitLab