/[projects]/dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/tasks/Task.java
ViewVC logotype

Diff of /dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/tasks/Task.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2838 by torben, Sun Jan 24 21:48:55 2016 UTC revision 2878 by torben, Sat Jan 30 14:05:53 2016 UTC
# Line 2  package dk.daoas.adressevedligehold.task Line 2  package dk.daoas.adressevedligehold.task
2    
3  import dk.daoas.adressevedligehold.util.TimingHelper;  import dk.daoas.adressevedligehold.util.TimingHelper;
4    
5    import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
6    
7  public abstract class Task implements Runnable {  public abstract class Task implements Runnable {
8                    
9          public enum TaskState {          public enum TaskState {
10                  STATE_QUEUED, STATE_RUNNING, STATE_DONE, STATE_ABORTED;                  STATE_QUEUED, STATE_RUNNING, STATE_DONE, STATE_ABORTED;
11          }          }
12                    
13            @SuppressFBWarnings("URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")//bliver læst via gson - og det forvirrer findbugs
14          public static class TaskBean {          public static class TaskBean {
15                  public String description;                  public String description;
16                  public String detail;                  public String detail;
17                    public String errorMessage;
18                  public double percentCompleted;                  public double percentCompleted;
19                  public String state;                  public String state;
20          }          }
# Line 18  public abstract class Task implements Ru Line 22  public abstract class Task implements Ru
22          protected boolean abort = false;          protected boolean abort = false;
23          protected TaskState state = TaskState.STATE_QUEUED;          protected TaskState state = TaskState.STATE_QUEUED;
24          protected TaskManager manager;          protected TaskManager manager;
25            private String errorMsg;
26                    
27          public void setManager(TaskManager manager) {          public void setManager(TaskManager manager) {
28                  this.manager = manager;                  this.manager = manager;
# Line 35  public abstract class Task implements Ru Line 40  public abstract class Task implements Ru
40                          taskRun();                          taskRun();
41                          this.state = TaskState.STATE_DONE;                          this.state = TaskState.STATE_DONE;
42                  } catch (Exception e) {                  } catch (Exception e) {
43                            this.errorMsg = e.getMessage();
44                            e.printStackTrace();
45                          this.state = TaskState.STATE_ABORTED;                          this.state = TaskState.STATE_ABORTED;
46                  }                  }
47                                    
# Line 48  public abstract class Task implements Ru Line 55  public abstract class Task implements Ru
55                  return this.state;                  return this.state;
56          }          }
57                    
58            public boolean isAborted() {
59                    return this.abort;
60            }
61            
62          public void doAbort() {          public void doAbort() {
63                  this.abort = true;                  this.abort = true;
64          }          }
# Line 59  public abstract class Task implements Ru Line 70  public abstract class Task implements Ru
70                  bean.detail = this.getDetail();                  bean.detail = this.getDetail();
71                  bean.percentCompleted = this.getPercentCompleted();                  bean.percentCompleted = this.getPercentCompleted();
72                  bean.state = this.state.toString();                  bean.state = this.state.toString();
73                    bean.errorMessage = this.getErrorMessage();
74                                    
75                  return bean;                  return bean;
76          }          }
77                    
78          protected abstract void taskRun();          public String getErrorMessage() {
79                    return this.errorMsg;
80            }
81            
82            /**
83             * @throws Exception
84             *
85             * Implementing classes should not catch terminating exceptions but let it propagate to Task the Task::run()
86             * method.
87             */
88            protected abstract void taskRun() throws Exception;
89                    
90          public abstract String getDescription();          public abstract String getDescription();
91          public abstract String getDetail();          public abstract String getDetail();

Legend:
Removed from v.2838  
changed lines
  Added in v.2878

  ViewVC Help
Powered by ViewVC 1.1.20