1 package tests.jfun.models; 2 3 public class LifecycleTransition { 4 private int status = 0; 5 private String status_name = "uninitialized"; 6 7 public LifecycleTransition() { 8 target_stamp = 0; 9 } 10 private final int target_stamp; 11 12 public LifecycleTransition(int target_stamp) { 13 this.target_stamp = target_stamp; 14 } 15 16 private void migrateStatus(String name, int target){ 17 if(status!=target-1){ 18 throw new IllegalStateException ("cannot migrate from " 19 +status_name + " to " + name); 20 } 21 status_name = name; 22 status = target; 23 } 24 25 public void init(){ 26 migrateStatus("initialized", 1); 27 } 29 public void start(){ 30 migrateStatus("started", 2); 31 } 32 public void stop(){ 33 migrateStatus("stopped", 3); 34 } 35 public void dispose(){ 36 migrateStatus("disposed", 4); 37 } 39 public String toString(){ 40 return "lifecycle"; 41 } 42 private int stamp = 0; 43 public void init(int s){ 44 migrateStatus("initialized", 1); 45 stamp += s; 46 } 47 public void start(int s){ 48 migrateStatus("started", 2); 49 stamp += s; 50 } 51 public void stop(int s){ 52 migrateStatus("stopped", 3); 53 stamp += s; 54 } 55 public void dispose(int s){ 56 migrateStatus("disposed", 4); 57 stamp += s; 58 if(stamp != target_stamp){ 59 throw new IllegalStateException ( 60 "stamp mismatch. "+stamp+"!="+target_stamp 61 ); 62 } 63 } 65 66 } 67 | Popular Tags |