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 / DefaultBufferManager.java @ 5488

History | View | Annotate | Download (3.93 KB)

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

    
3
import java.io.File;
4

    
5
import org.cresques.cts.IProjection;
6
import org.gvsig.fmap.geom.primitive.Envelope;
7
import org.gvsig.raster.lib.buffer.api.Band;
8
import org.gvsig.raster.lib.buffer.api.BandPageManager;
9
import org.gvsig.raster.lib.buffer.api.Buffer;
10
import org.gvsig.raster.lib.buffer.api.BufferManager;
11
import org.gvsig.raster.lib.buffer.api.NoData;
12
import org.gvsig.raster.lib.buffer.api.exceptions.BufferException;
13
import org.gvsig.raster.lib.buffer.impl.exceptions.CreateBandTypeException;
14
import org.gvsig.raster.lib.buffer.impl.exceptions.CreateBufferException;
15

    
16
/**
17
 * @author fdiaz
18
 *
19
 */
20
public class DefaultBufferManager implements BufferManager {
21

    
22
    @Override
23
    public NoData createNoData(Number value, Number defaultValue) {
24
        NoData noData = new DefaultNoData(defaultValue);
25
        noData.setValue(value);
26
        return noData;
27
    }
28

    
29
    @Override
30
    public Band createBand(int dataType, int rows, int columns, NoData noData,
31
        BandPageManager pageManager) throws CreateBandTypeException {
32
        if (pageManager == null) {
33
            switch (dataType) {
34
            case BufferManager.TYPE_BYTE:
35
                return new DefaultBandByte(rows, columns, noData);
36
            case BufferManager.TYPE_SHORT:
37
                return new DefaultBandShort(rows, columns, noData);
38
            case BufferManager.TYPE_INT:
39
                return new DefaultBandInt(rows, columns, noData);
40
            case BufferManager.TYPE_FLOAT:
41
                return new DefaultBandFloat(rows, columns, noData);
42
            case BufferManager.TYPE_DOUBLE:
43
                return new DefaultBandDouble(rows, columns, noData);
44
            default:
45
                throw new CreateBandTypeException(dataType);
46
            }
47
        } else {
48
            switch (dataType) {
49
            case BufferManager.TYPE_BYTE:
50
                // FIXME:
51
                return new DefaultBandByte(rows, columns, noData);
52
            case BufferManager.TYPE_SHORT:
53
                // FIXME:
54
                return new DefaultBandShort(rows, columns, noData);
55
            case BufferManager.TYPE_INT:
56
                // FIXME:
57
                return new DefaultBandInt(rows, columns, noData);
58
            case BufferManager.TYPE_FLOAT:
59
                // FIXME:
60
                return new DefaultBandFloat(rows, columns, noData);
61
            case BufferManager.TYPE_DOUBLE:
62
                // FIXME:
63
                return new DefaultBandDouble(rows, columns, noData);
64
            default:
65
                throw new CreateBandTypeException(dataType);
66
            }
67

    
68
        }
69
    }
70
    
71
    @Override
72
    public Buffer createBuffer(int rows, int columns, int[] bandDataTypes, IProjection projection)
73
        throws BufferException {
74
        return new DefaultBuffer(rows, columns, bandDataTypes, null, projection, null, null);
75
    }
76

    
77
    @Override
78
    public Buffer createBuffer(int rows, int columns, int[] bandDataTypes, NoData[] bandNoData,
79
        IProjection projection) throws CreateBufferException {
80
        return new DefaultBuffer(rows, columns, bandDataTypes, bandNoData, projection, null, null);
81
    }
82

    
83
    @Override
84
    public Buffer createBuffer(int rows, int columns, int[] bandDataTypes, NoData[] bandNoData,
85
        IProjection projection, Envelope envelope) throws BufferException {
86
        return new DefaultBuffer(rows, columns, bandDataTypes, bandNoData, projection, envelope,
87
            null);
88
    }
89

    
90
    @Override
91
    public Buffer createBuffer(int rows, int columns, int[] bandDataTypes, NoData[] bandNoData,
92
        IProjection projection, Envelope envelope, BandPageManager pageManager)
93
        throws BufferException {
94
        return new DefaultBuffer(rows, columns, bandDataTypes, bandNoData, projection, envelope,
95
            pageManager);
96
    }
97

    
98
    @Override
99
    public BandPageManager createSimpleBandPageManager(File file, int rows, int columns,
100
        int dataType) {
101
        // TODO Auto-generated method stub
102
        return null;
103
    }
104
}