Statistics
| Revision:

gvsig-raster / org.gvsig.raster.cache / trunk / org.gvsig.raster.cache / org.gvsig.raster.cache.lib.impl / src / main / java / org / gvsig / raster / cache / buffer / impl / task / DefaultTaskEventManager.java @ 1419

History | View | Annotate | Download (2.19 KB)

1
package org.gvsig.raster.cache.buffer.impl.task;
2

    
3
import java.util.EventObject;
4

    
5
import org.gvsig.raster.cache.buffer.exception.ProcessInterruptedException;
6
import org.gvsig.raster.cache.buffer.task.TaskEventManager;
7
/**
8
 * This class manages a raster task. 
9
 * @author Nacho Brodin (nachobrodin@gmail.com)
10
 */
11
public class DefaultTaskEventManager implements TaskEventManager {
12
        private DefaultTask task = null;
13
        
14
        /**
15
         * This constructor creates this object but it doesn't register
16
         * the task
17
         * @param process
18
         */
19
        public DefaultTaskEventManager() {
20
        }
21
        
22
        /**
23
         * This constructor creates the task and register this
24
         * in the repository
25
         * @param process
26
         */
27
        public DefaultTaskEventManager(Object process) {
28
                task = new DefaultTask(process);
29
                DefaultRasterTaskQueue.register(task);
30
        }
31
        
32
        /*
33
         * O(non-Javadoc)
34
         * @see org.gvsig.fmap.dal.coverage.process.TaskEventManager#removeTask()
35
         */
36
        public void removeTask() {
37
                DefaultRasterTaskQueue.remove(task);
38
        }
39
        
40
        /*
41
         * (non-Javadoc)
42
         * @see org.gvsig.fmap.dal.coverage.process.TaskEventManager#setEvent(java.util.EventObject)
43
         */
44
        public void setEvent(EventObject ev) {
45
                task.setEvent(ev);
46
        }
47
        
48
        /**
49
         * Assigns a task without register.
50
         * @param task
51
         */
52
        public void setTask(DefaultTask task) {
53
                this.task = task;
54
        }
55
        
56
        /*
57
         * (non-Javadoc)
58
         * @see org.gvsig.fmap.dal.coverage.process.TaskEventManager#getEvent()
59
         */
60
        public EventObject getEvent() {
61
                return task.getEvent();
62
        }
63
        
64
        /**
65
         * Gesti?n de las se?ales. Este m?todo define las acciones por defecto para
66
         * cada se?al. No es necesario utilizar estas. Se puede en cada caso, hacer un m?todo
67
         * manageEvent en el que se gestione las acciones concretas de una se?al.
68
         * 
69
         * @param ev Evento a gestionar
70
         */
71
        public  void manageEvent(EventObject ev) throws ProcessInterruptedException {
72
                task.manageEvent(ev);
73
        }
74
        
75
        /**
76
         * Obtiene un proceso a partir de su identificador
77
         * @param id Identificador del proceso
78
         * @return Proceso
79
         */
80
        public static TaskEventManager get() {
81
                DefaultTask task = DefaultRasterTaskQueue.get(Thread.currentThread().getId() + "");
82
                DefaultTaskEventManager taskEventManager = new DefaultTaskEventManager();
83
                taskEventManager.setTask(task);
84
                return taskEventManager;
85
        }
86
}