Statistics
| Revision:

svn-gvsig-desktop / branches / org.gvsig.desktop-2018a / org.gvsig.desktop.library / org.gvsig.raster / org.gvsig.raster.lib / org.gvsig.raster.lib.buffer.impl / src / main / java / org / gvsig / raster / lib / buffer / impl / DefaultNoData.java @ 43803

History | View | Annotate | Download (2.54 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 boolean equals(Object obj) {
44
        if(obj instanceof NoData){
45
            return compareTo((NoData)obj)==0;
46
        }
47
        return super.equals(obj);
48
    }
49

    
50
    @Override
51
    public Number getValue() {
52
        return this.value;
53
    }
54

    
55
    @Override
56
    public void setValue(Number value) {
57
        //FIXME: ?Comprobar que value y this.value o defaultValue son del mismo tipo?
58
        this.value = value;
59
    }
60

    
61
    @Override
62
    public boolean isDefined() {
63
        return value!=null;
64
    }
65

    
66
    @Override
67
    public void clear() {
68
        this.value = null;
69
    }
70

    
71
    @Override
72
    public void restore() {
73
        this.value = this.defaultValue;
74

    
75
    }
76

    
77
    @Override
78
    public Number getDefaultValue() {
79
        return this.defaultValue;
80
    }
81

    
82
    @Override
83
    public int getDataType() {
84
        if(value instanceof Byte) {
85
            return BufferManager.TYPE_BYTE;
86
        }
87
        if(value instanceof Short) {
88
            return BufferManager.TYPE_SHORT;
89
        }
90
        if(value instanceof Integer) {
91
            return BufferManager.TYPE_INT;
92
        }
93
        if(value instanceof Float) {
94
            return BufferManager.TYPE_FLOAT;
95
        }
96
        if(value instanceof Double) {
97
            return BufferManager.TYPE_DOUBLE;
98
        }
99
        return BufferManager.TYPE_UNDEFINED;
100
    }
101

    
102
    @Override
103
    public void copyFrom(NoData noData) {
104
        this.defaultValue = noData.getDefaultValue();
105
        this.value = noData.getValue();
106
    }
107

    
108
    @Override
109
    public Object clone() throws CloneNotSupportedException {
110
        DefaultNoData cloned = (DefaultNoData)super.clone();
111
        cloned.setDefaultValue(this.getDefaultValue());
112
        cloned.setValue(getValue());
113
        return cloned;
114
    }
115

    
116
}