Remove autogenerated comments
[scilab.git] / scilab / modules / gui / src / java / org / scilab / modules / gui / events / BlockingResult.java
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2008 - INRIA
4  * 
5  * This file must be used under the terms of the CeCILL.
6  * This source file is licensed as described in the file COPYING, which
7  * you should have received as part of this distribution.  The terms
8  * are also available at    
9  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
10  *
11  */
12
13 package org.scilab.modules.gui.events;
14
15 /**
16  * Class use for dialogs that wait for a user input
17  * 
18  * @author Bruno JOFRET
19  */
20 public final class BlockingResult {
21
22         private static BlockingResult me;
23         
24         private String theResult;
25         
26         /**
27          * Constructor
28          */
29         private BlockingResult() {
30                 theResult = null;
31         }
32
33         /**
34          * Get the current instance of BlockingResult
35          * @return this instance
36          */
37         public static BlockingResult getInstance() {
38                 if (me == null) {
39                         me = new BlockingResult();      
40                 }
41                 return me;
42         }
43         
44         /**
45          * Get the user input (wait until it)
46          * @return the user input
47          */
48         public String getResult() {
49                 synchronized (me) {
50                         try {
51                                 me.wait();
52                         } catch (InterruptedException e) {
53                                 e.printStackTrace();
54                         }
55                 }
56                 return me.theResult;
57         }
58
59         /**
60          * Set the result for this BlockingResult and notify
61          * @param theResult the user input to set
62          */
63         public void setResult(String theResult) {
64                 this.theResult = theResult;
65                 synchronized (me) {
66                         me.notify();
67                 }
68         }
69         
70         
71         
72 }