Statistics
| Revision:

gvsig-gdal / trunk / org.gvsig.gdal2 / org.gvsig.gdal2.prov / org.gvsig.gdal2.prov.raster / src / main / java / org / gvsig / raster / gdal / provider / NewRasterGdalStoreParameters.java @ 370

History | View | Annotate | Download (2.84 KB)

1
package org.gvsig.raster.gdal.provider;
2

    
3
import java.io.File;
4

    
5
import org.gvsig.fmap.dal.FileHelper;
6
import org.gvsig.fmap.dal.raster.NewRasterStoreParameters;
7
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemStoreParameters;
8
import org.gvsig.fmap.dal.spi.AbstractDataParameters;
9
import org.gvsig.fmap.dal.spi.DataStoreProviderServices;
10
import org.gvsig.raster.lib.buffer.api.Buffer;
11
import org.gvsig.tools.dynobject.DelegatedDynObject;
12

    
13

    
14
/**
15
 * Generic parameters to create a new raster gdal store
16
 * @author dmartinezizquierdo
17
 *
18
 */
19
public class NewRasterGdalStoreParameters extends AbstractDataParameters
20
    implements NewRasterStoreParameters,FilesystemStoreParameters{
21

    
22
    /**
23
     * Parameters definition
24
     */
25
    public static final String PARAMETERS_DEFINITION_NAME = "NewRasterGdalStoreParameters";
26
    /**
27
     * String to identify the File param
28
     */
29
    public static final String FILE_PARAM_NAME = "file";
30
    /**
31
     * Name of the group for specific driver options defined in the XML
32
     */
33
    public static final String CREATE_OPTIONS_GROUP = "CreateOptions";
34

    
35
    private DelegatedDynObject parameters;
36
    private Buffer buffer;
37

    
38
    /**
39
     * Constructor
40
     * @param parametersDefinitionName
41
     * @param providerName
42
     */
43
    public NewRasterGdalStoreParameters(String parametersDefinitionName, String providerName) {
44
        super();
45
        this.parameters = (DelegatedDynObject) FileHelper.newParameters(parametersDefinitionName);
46
        this.setDynValue(DataStoreProviderServices.PROVIDER_PARAMTER_NAME, providerName);
47
    }
48

    
49

    
50
    public String getDataStoreName() {
51
        return (String) this.getDynValue(DataStoreProviderServices.PROVIDER_PARAMTER_NAME);
52
    }
53

    
54
    @Override
55
    public String getDescription() {
56
        return this.getDynClass().getDescription();
57
    }
58

    
59
    @Override
60
    protected DelegatedDynObject getDelegatedDynObject() {
61
        return parameters;
62
    }
63

    
64
    @Override
65
    public boolean isValid() {
66
        File file=getFile();
67
        Buffer buffer=getBuffer();
68
        if (file!=null && !file.isDirectory() && buffer!=null){
69
            File parentFile = file.getParentFile();
70
            if ( //The file can be overwritten
71
                (file.exists() && file.canWrite()) ||
72
                //The file can be created in the parent directory
73
                 (!file.exists() && parentFile.canWrite() && parentFile.isDirectory())
74
               ){
75
                return true;
76
            }
77
        }
78
        return false;
79
    }
80

    
81
    @Override
82
    public File getFile() {
83
        return (File) this.getDynValue(FILE_PARAM_NAME);
84
    }
85

    
86
    @Override
87
    public void setFile(File file) {
88
        this.setDynValue(FILE_PARAM_NAME, file);
89
    }
90

    
91
    @Override
92
    public Buffer getBuffer() {
93
        return this.buffer;
94
    }
95

    
96
    @Override
97
    public void setBuffer(Buffer buffer) {
98
        this.buffer=buffer;
99
    }
100

    
101

    
102
}