KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > j2ee > ddloaders > web > test > util > StepIterator


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19 package org.netbeans.modules.j2ee.ddloaders.web.test.util;
20
21 /**
22  * @author pfiala
23  */

24 public abstract class StepIterator {
25     private Exception JavaDoc 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 JavaDoc;
39
40     public void finalCheck() {
41     }
42
43     public boolean isSuccess() {
44         return success;
45     }
46
47     public Exception JavaDoc 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 JavaDoc 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 JavaDoc ex) {
74             }
75         }
76         finalCheck();
77     }
78 }
79
Popular Tags