Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.library / org.gvsig.exportto / org.gvsig.exportto.swing / org.gvsig.exportto.swing.prov / org.gvsig.exportto.swing.prov.dbf / src / main / java / org / gvsig / export / dbf / service / ExportDBFParametersImpl.java @ 44556

History | View | Annotate | Download (3.26 KB)

1
package org.gvsig.export.dbf.service;
2

    
3
import java.io.File;
4
import org.apache.commons.io.FilenameUtils;
5
import org.gvsig.export.ExportLocator;
6
import org.gvsig.export.spi.AbstractExportParameters;
7
import org.gvsig.export.spi.AttributeNamesTranslator;
8
import org.gvsig.export.spi.CutAttributeNamesTranslator;
9
import org.gvsig.expressionevaluator.ExpressionUtils;
10
import org.gvsig.fmap.dal.feature.FeatureType;
11
import org.gvsig.tools.ToolsLocator;
12
import org.gvsig.tools.dynobject.DynStruct;
13
import org.gvsig.tools.folders.FoldersManager;
14
import org.gvsig.tools.persistence.PersistenceManager;
15
import org.gvsig.tools.persistence.PersistentState;
16
import org.gvsig.tools.persistence.exception.PersistenceException;
17

    
18
/**
19
 *
20
 * @author jjdelcerro
21
 */
22
public class ExportDBFParametersImpl
23
        extends AbstractExportParameters
24
        implements ExportDBFParameters {
25

    
26
    private String encoding;
27
    private File file;
28

    
29
    public ExportDBFParametersImpl(ExportDBFServiceFactory factory) {
30
        super(factory);
31
        AttributeNamesTranslator attr = new CutAttributeNamesTranslator(ExportDBFService.MAX_FIELD_NAME_LENGTH);
32
        this.exportAttributes.setNamesTranslator(attr);
33
    }
34

    
35
    public ExportDBFParametersImpl() {
36
        super(null);
37
    }
38

    
39
    public static void registerPersistence() {
40

    
41
        PersistenceManager manager = ToolsLocator.getPersistenceManager();
42
        if (manager.getDefinition("ExportDBFParametersImpl") == null) {
43
            DynStruct definition = manager.addDefinition(ExportDBFParametersImpl.class,
44
                    "ExportDBFParametersImpl", "ExportDBFParametersImpl persistence definition", null, null);
45

    
46
            definition.addDynFieldString("encoding");
47
            definition.addDynFieldFile("file");
48

    
49
            definition.extend(manager.getDefinition("AbstractExportParameters"));
50
        }
51
    }
52

    
53
    @Override
54
    public void saveToState(PersistentState state) throws PersistenceException {
55
        super.saveToState(state);
56
        state.set("encoding", encoding);
57
        state.set("file", file);
58
    }
59

    
60
    @Override
61
    public void loadFromState(PersistentState state) throws PersistenceException {
62
        super.loadFromState(state);
63
        this.encoding = state.getString("encoding");
64
        this.file = state.getFile("file");
65
    }
66

    
67
    @Override
68
    public String getServiceName() {
69
        return ExportDBFServiceFactory.SERVICE_NAME;
70
    }
71

    
72
    @Override
73
    public String getEncoding() {
74
        return this.encoding;
75
    }
76

    
77
    @Override
78
    public void setEncoding(String encoding) {
79
        this.encoding = encoding;
80
    }
81

    
82
    @Override
83
    public File getFile() {
84
        return this.file;
85
    }
86

    
87
    @Override
88
    public void setFile(File file) {
89
        if (ExpressionUtils.isDynamicFilename(file)) {
90
            this.file = file;
91
        } else {
92
            if (file.isAbsolute()) {
93
                this.file = new File(FilenameUtils.removeExtension(file.getAbsolutePath()) + ".dbf");
94
            } else {
95
                FoldersManager fm = ToolsLocator.getFoldersManager();
96
                this.file = new File(fm.getHome(), FilenameUtils.removeExtension(file.getPath()) + ".dbf");
97
            }
98
        }
99
    }
100

    
101
    @Override
102
    public void setSourceFeatureType(FeatureType sourceFeatureType) {
103
        super.setSourceFeatureType(sourceFeatureType);
104

    
105
    }
106

    
107
}