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/DefaultBandByte.java
DefaultBandByte.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.BufferManager; |
5 | 7 |
import org.gvsig.raster.lib.buffer.api.NoData; |
... | ... | |
10 | 12 |
* @author fdiaz |
11 | 13 |
* |
12 | 14 |
*/ |
13 |
public class DefaultBandByte extends AbstractBand implements BandByte{ |
|
15 |
public class DefaultBandByte extends AbstractBand implements BandByte {
|
|
14 | 16 |
|
15 | 17 |
byte[] data; |
16 | 18 |
|
17 |
|
|
18 | 19 |
/** |
19 | 20 |
* @param rows |
20 | 21 |
* @param columns |
21 | 22 |
*/ |
22 | 23 |
public DefaultBandByte(int rows, int columns) { |
23 |
this(rows, columns, null);
|
|
24 |
this(rows, columns, new DefaultNoData(null));
|
|
24 | 25 |
} |
25 | 26 |
|
26 | 27 |
/** |
... | ... | |
31 | 32 |
public DefaultBandByte(int rows, int columns, NoData noData) { |
32 | 33 |
this.rows = rows; |
33 | 34 |
this.columns = columns; |
34 |
data = new byte[rows*columns];
|
|
35 |
data = new byte[rows * columns];
|
|
35 | 36 |
this.noData = noData; |
36 | 37 |
} |
37 | 38 |
|
... | ... | |
47 | 48 |
|
48 | 49 |
@Override |
49 | 50 |
public void set(int row, int column, Object value) { |
50 |
setValue(row, column, (byte)value); |
|
51 |
setValue(row, column, (byte) value);
|
|
51 | 52 |
} |
52 | 53 |
|
53 | 54 |
@Override |
54 | 55 |
public void fill(Object value) { |
55 |
byte aux = (byte) getNoData().getValue(); |
|
56 |
if(value != null){ |
|
57 |
aux = (byte)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 |
} |
|
58 | 63 |
} |
59 |
for (int i = 0; i < data.length; i++) { |
|
60 |
data[i] = aux; |
|
61 |
} |
|
64 |
Arrays.fill(data, (byte) value); |
|
62 | 65 |
} |
63 | 66 |
|
64 |
byte[] getData(){ |
|
67 |
byte[] getData() {
|
|
65 | 68 |
return data; |
66 | 69 |
} |
67 | 70 |
|
68 | 71 |
@Override |
69 | 72 |
public void copyFrom(Band source) throws CopyFromBandException { |
70 |
if(this.getColumns()!=source.getColumns() || this.getRows()!=source.getRows() || !(source instanceof DefaultBandByte)){ |
|
71 |
throw new CopyFromBandException(source,this); |
|
73 |
if (this.getColumns() != source.getColumns() || this.getRows() != source.getRows() |
|
74 |
|| !(source instanceof DefaultBandByte)) { |
|
75 |
throw new CopyFromBandException(source, this); |
|
72 | 76 |
} |
73 |
System.arraycopy(((DefaultBandByte)source).getData(), 0, this.data, 0, this.getRows()*this.getColumns()); |
|
77 |
System.arraycopy(((DefaultBandByte) source).getData(), 0, this.data, 0, this.getRows() |
|
78 |
* this.getColumns()); |
|
74 | 79 |
} |
75 | 80 |
|
76 | 81 |
@Override |
77 | 82 |
public byte getValue(int row, int column) { |
78 |
return data[row+column*getColumns()];
|
|
83 |
return data[row + column * getColumns()];
|
|
79 | 84 |
} |
80 | 85 |
|
81 | 86 |
@Override |
82 | 87 |
public void setValue(int row, int column, byte value) { |
83 |
data[row+column*getColumns()] = value;
|
|
88 |
data[row + column * getColumns()] = value;
|
|
84 | 89 |
} |
85 | 90 |
|
86 | 91 |
@Override |
... | ... | |
90 | 95 |
|
91 | 96 |
@Override |
92 | 97 |
public void fetchRow(int row, Object rowBuffer) { |
93 |
System.arraycopy(data, row*getColumns(), (byte[])rowBuffer, 0, getColumns());
|
|
98 |
System.arraycopy(data, row * getColumns(), (byte[]) rowBuffer, 0, getColumns());
|
|
94 | 99 |
|
95 | 100 |
} |
96 | 101 |
|
97 | 102 |
@Override |
98 | 103 |
public void putRow(int row, Object rowBuffer) { |
99 |
System.arraycopy((byte[])rowBuffer, 0, data, row*getColumns(), getColumns());
|
|
104 |
System.arraycopy((byte[]) rowBuffer, 0, data, row * getColumns(), getColumns());
|
|
100 | 105 |
|
101 | 106 |
} |
102 | 107 |
|
Also available in: Unified diff