1 19 package org.netbeans.modules.j2ee.ddloaders.web.test.util; 20 21 24 public abstract class StepIterator { 25 private Exception error = null; 26 private long startTime; 27 private long duration; 28 private boolean success = false; 29 30 public StepIterator() { 31 this(1000, 20000); 32 } 33 34 public StepIterator(int stepDuration, int timeout) { 35 iterate(stepDuration, timeout); 36 } 37 38 public abstract boolean step() throws Exception ; 39 40 public void finalCheck() { 41 } 42 43 public boolean isSuccess() { 44 return success; 45 } 46 47 public Exception getError() { 48 return error; 49 } 50 51 public long getDuration() { 52 return duration; 53 } 54 55 public void iterate(long stepDuration, long timeout) { 56 startTime = System.currentTimeMillis(); 57 for (; ;) { 58 try { 59 error = null; 60 success = step(); 61 if (success) { 62 break; 63 } 64 } catch (Exception e) { 65 error = e; 66 } 67 duration = System.currentTimeMillis() - startTime; 68 if (duration > timeout) { 69 break; 70 } 71 try { 72 Thread.sleep(stepDuration); 73 } catch (InterruptedException ex) { 74 } 75 } 76 finalCheck(); 77 } 78 } 79 | Popular Tags |