Revision 5484 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/DefaultBandDouble.java

View differences:

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

  
3
import java.util.Arrays;
4

  
3 5
import org.gvsig.raster.lib.buffer.api.Band;
4 6
import org.gvsig.raster.lib.buffer.api.Band.BandDouble;
5 7
import org.gvsig.raster.lib.buffer.api.BufferManager;
6 8
import org.gvsig.raster.lib.buffer.api.NoData;
7 9
import org.gvsig.raster.lib.buffer.impl.exceptions.CopyFromBandException;
8 10

  
9

  
10 11
/**
11 12
 * @author fdiaz
12 13
 *
13 14
 */
14
public class DefaultBandDouble extends AbstractBand implements BandDouble{
15
public class DefaultBandDouble extends AbstractBand implements BandDouble {
15 16

  
16 17
    double[] data;
17 18

  
18

  
19 19
    /**
20 20
     * @param rows
21 21
     * @param columns
......
32 32
    public DefaultBandDouble(int rows, int columns, NoData noData) {
33 33
        this.rows = rows;
34 34
        this.columns = columns;
35
        data = new double[rows*columns];
35
        data = new double[rows * columns];
36 36
        this.noData = noData;
37 37
    }
38 38

  
......
48 48

  
49 49
    @Override
50 50
    public void set(int row, int column, Object value) {
51
        setValue(row, column, (double)value);
51
        setValue(row, column, (double) value);
52 52
    }
53 53

  
54 54
    @Override
55 55
    public void fill(Object value) {
56
        double aux = (double) getNoData().getValue();
57
        if(value != null){
58
            aux = (double)value;
56
        if (value == null) {
57
            if (getNoData().isDefined()) {
58
                value = getNoData().getValue();
59
            } else {
60
                // Do nothing, no data value is defined
61
                return;
62
            }
59 63
        }
60
        for (int i = 0; i < data.length; i++) {
61
            data[i] = aux;
62
        }
64
        Arrays.fill(data, (double) value);
63 65
    }
64 66

  
65
    double[] getData(){
67
    double[] getData() {
66 68
        return data;
67 69
    }
68 70

  
69 71
    @Override
70 72
    public void copyFrom(Band source) throws CopyFromBandException {
71
        if(this.getColumns()!=source.getColumns() || this.getRows()!=source.getRows() || !(source instanceof DefaultBandDouble)){
72
            throw new CopyFromBandException(source,this);
73
        if (this.getColumns() != source.getColumns() || this.getRows() != source.getRows()
74
            || !(source instanceof DefaultBandDouble)) {
75
            throw new CopyFromBandException(source, this);
73 76
        }
74
        System.arraycopy(((DefaultBandDouble)source).getData(), 0, this.data, 0, this.getRows()*this.getColumns());
77
        System.arraycopy(((DefaultBandDouble) source).getData(), 0, this.data, 0, this.getRows()
78
            * this.getColumns());
75 79
    }
76 80

  
77 81
    @Override
78 82
    public double getValue(int row, int column) {
79
        return data[row+column*getColumns()];
83
        return data[row + column * getColumns()];
80 84
    }
81 85

  
82 86
    @Override
83 87
    public void setValue(int row, int column, double value) {
84
        data[row+column*getColumns()] = value;
88
        data[row + column * getColumns()] = value;
85 89
    }
86 90

  
87 91
    @Override
......
91 95

  
92 96
    @Override
93 97
    public void fetchRow(int row, Object rowBuffer) {
94
        System.arraycopy(data, row*getColumns(), (double[])rowBuffer, 0, getColumns());
98
        System.arraycopy(data, row * getColumns(), (double[]) rowBuffer, 0, getColumns());
95 99

  
96 100
    }
97 101

  
98 102
    @Override
99 103
    public void putRow(int row, Object rowBuffer) {
100
        System.arraycopy((double[])rowBuffer, 0, data, row*getColumns(), getColumns());
104
        System.arraycopy((double[]) rowBuffer, 0, data, row * getColumns(), getColumns());
101 105

  
102 106
    }
103 107

  

Also available in: Unified diff