Statistics
| Revision:

svn-gvsig-desktop / trunk / libraries / libRaster / src / org / gvsig / raster / util / Cancellable.java @ 37963

History | View | Annotate | Download (2.11 KB)

1
/* gvSIG. Geographic Information System of the Valencian Government
2
*
3
* Copyright (C) 2007-2008 Infrastructures and Transports Department
4
* of the Valencian Government (CIT)
5
* 
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* as published by the Free Software Foundation; either version 2
9
* of the License, or (at your option) any later version.
10
* 
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
* GNU General Public License for more details.
15
* 
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
19
* MA  02110-1301, USA.
20
* 
21
*/
22

    
23
/*
24
* AUTHORS (In addition to CIT):
25
* 2012 Software Colaborativo (www.scolab.es)   development
26
*/
27
 
28
package org.gvsig.raster.util;
29

    
30
import java.lang.reflect.InvocationTargetException;
31
import java.lang.reflect.Method;
32

    
33
/**
34
 * @author Francisco Jos? Pe?arrubia (fjp@scolab.es)
35
 *
36
 * To avoid libIverUtiles dependency.
37
 * This class is a wrapper around ICancel object, and uses reflection
38
 * to get the job done.
39
 */
40
public class Cancellable {
41
        
42
        Method method = null;
43
        Object obj;
44
        
45
        public Cancellable(Object obj) {
46
                try {
47
                        this.obj = obj;
48
                        if (obj != null) {
49
                                method = obj.getClass().getMethod("isCanceled", null);
50
                        }
51
                } catch (SecurityException e) {
52
                        // TODO Auto-generated catch block
53
                        e.printStackTrace();
54
                } catch (NoSuchMethodException e) {
55
                        // TODO Auto-generated catch block
56
                        e.printStackTrace();
57
                }
58
        }
59
        
60
        public boolean isCanceled() {
61
                Object ret = false;
62
                try {
63
                        if (method != null)
64
                                ret = method.invoke(obj, null);
65
                } catch (IllegalArgumentException e) {
66
                        e.printStackTrace();
67
                } catch (IllegalAccessException e) {
68
                        e.printStackTrace();
69
                } catch (InvocationTargetException e) {
70
                        e.printStackTrace();
71
                }
72
                
73
                return (Boolean) ret;
74
        }
75

    
76
}
77