Statistics
| Revision:

gvsig-raster / org.gvsig.raster / branches / org.gvsig.raster.2.4 / org.gvsig.raster / org.gvsig.raster.lib / org.gvsig.raster.lib.buffer / org.gvsig.raster.lib.buffer.impl / src / main / java / org / gvsig / raster / lib / buffer / impl / DefaultNoData.java @ 5449

History | View | Annotate | Download (2.36 KB)

1
package org.gvsig.raster.lib.buffer.impl;
2

    
3
import org.gvsig.raster.lib.buffer.api.BufferManager;
4
import org.gvsig.raster.lib.buffer.api.NoData;
5

    
6

    
7
/**
8
 * @author fdiaz
9
 *
10
 */
11
public class DefaultNoData implements NoData {
12

    
13
    Number value;
14
    Number defaultValue;
15

    
16
    /**
17
     * @param defaultValue
18
     */
19
    public DefaultNoData(Number defaultValue) {
20
        this.defaultValue = defaultValue;
21
        this.value = this.defaultValue;
22
    }
23

    
24
    /**
25
     * Sets the default value
26
     *
27
     * @param defaultValue
28
     */
29
    public void setDefaultValue(Number defaultValue){
30
        this.defaultValue = defaultValue;
31
    }
32

    
33
    @Override
34
    public int compareTo(NoData o) {
35
        Number aux = null;
36
        if(o.isDefined()){
37
            aux = o.getValue();
38
        }
39
        return ((Comparable)value).compareTo((Comparable)aux);
40
    }
41

    
42
    @Override
43
    public Number getValue() {
44
        return this.value;
45
    }
46

    
47
    @Override
48
    public void setValue(Number value) {
49
        //FIXME: ?Comprobar que value y this.value o defaultValue son del mismo tipo?
50
        this.value = value;
51
    }
52

    
53
    @Override
54
    public boolean isDefined() {
55
        return value!=null;
56
    }
57

    
58
    @Override
59
    public void clear() {
60
        this.value = null;
61
    }
62

    
63
    @Override
64
    public void restore() {
65
        this.value = this.defaultValue;
66

    
67
    }
68

    
69
    @Override
70
    public Number getDefaultValue() {
71
        return this.defaultValue;
72
    }
73

    
74
    @Override
75
    public int getDataType() {
76
        if(value instanceof Byte) {
77
            return BufferManager.TYPE_BYTE;
78
        }
79
        if(value instanceof Short) {
80
            return BufferManager.TYPE_SHORT;
81
        }
82
        if(value instanceof Integer) {
83
            return BufferManager.TYPE_INT;
84
        }
85
        if(value instanceof Float) {
86
            return BufferManager.TYPE_FLOAT;
87
        }
88
        if(value instanceof Double) {
89
            return BufferManager.TYPE_DOUBLE;
90
        }
91
        return BufferManager.TYPE_UNDEFINED;
92
    }
93

    
94
    @Override
95
    public void copyFrom(NoData noData) {
96
        this.defaultValue = noData.getDefaultValue();
97
        this.value = noData.getValue();
98
    }
99

    
100
    @Override
101
    public Object clone() throws CloneNotSupportedException {
102
        DefaultNoData cloned = (DefaultNoData)super.clone();
103
        cloned.setDefaultValue(this.getDefaultValue());
104
        cloned.setValue(getValue());
105
        return cloned;
106
    }
107

    
108
}