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 / ConvertedTypeBandDouble.java @ 8800

History | View | Annotate | Download (2.22 KB)

1 6894 fdiaz
package org.gvsig.raster.lib.buffer.impl;
2
3
import org.gvsig.raster.lib.buffer.api.Band;
4
import org.gvsig.raster.lib.buffer.api.Band.BandDouble;
5
import org.gvsig.raster.lib.buffer.api.BandInfo;
6
import org.gvsig.raster.lib.buffer.api.Buffer;
7
import org.gvsig.raster.lib.buffer.api.BufferLocator;
8
import org.gvsig.raster.lib.buffer.api.BufferManager;
9
import org.gvsig.raster.lib.buffer.api.NoData;
10
11
12
/**
13
 * @author fdiaz
14
 *
15
 */
16
public class ConvertedTypeBandDouble extends AbstractConvertedTypeBand implements BandDouble{
17
18
    /**
19
     * @param buffer
20
     * @param band
21
     */
22
    public ConvertedTypeBandDouble(Buffer buffer, Band band) {
23
        super(buffer, band);
24
    }
25
26
    @Override
27
    public double[] createRowBuffer() {
28
        return new double[getColumns()];
29
    }
30
31
    @Override
32
    public void fetchRow(int row, Object rowBuffer) {
33
        for (int i = 0; i < getColumns(); i++) {
34
            ((double[]) rowBuffer)[i] = ((Number) this.band.get(row, i)).doubleValue();
35
        }
36
    }
37
38
    @Override
39
    public double getValue(int row, int column) {
40
        return ((Number) this.get(row, column)).byteValue();
41
    }
42
43
    @Override
44
    public void setValue(int row, int column, double value) {
45
        doSet(row, column, new Double(value));
46
    }
47
48
    @Override
49
    public int getDataType() {
50
        return BufferManager.TYPE_DOUBLE;
51
    }
52
53
    @Override
54
    public Object get(int row, int column) {
55
        return ((Number) this.get(row, column)).byteValue();
56
    }
57
58
    @Override
59
    public NoData getNoData() {
60
        NoData bandNoData = this.band.getNoData();
61
        if(bandNoData==null){
62
            this.noData = BufferLocator.getBufferManager().createNoData(null, null);
63
        } else {
64
            Double value = null;
65
            Double defaultValue = null;
66
            Number bandvalue = bandNoData.getValue();
67
            Number bandDefaultValue = bandNoData.getDefaultValue();
68
            if (bandvalue != null) {
69
                value = bandvalue.doubleValue();
70
            }
71
            if (bandDefaultValue != null) {
72
                defaultValue = bandDefaultValue.doubleValue();
73
            }
74
75
            this.noData = BufferLocator.getBufferManager().createNoData(value, defaultValue);
76
        }
77
        return this.noData;
78
    }
79
80
}