Revision 44386 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.jdbc/src/main/java/org/gvsig/export/jdbc/service/ExportJDBCService.java

View differences:

ExportJDBCService.java
53 53
import org.gvsig.export.ExportLocator;
54 54
import org.gvsig.export.spi.ExportService;
55 55
import org.gvsig.export.spi.AbstractExportService;
56
import org.gvsig.export.spi.AttributeNamesTranslator;
57 56
import org.gvsig.export.spi.ExportServiceFactory;
58 57
import org.gvsig.export.spi.ExportServiceManager;
59 58
import org.gvsig.export.spi.ExportServiceManager.FixGeometryStatus;
......
107 106
            boolean preferNotToUseNonNullRestrictions = factory.preferNotToUseNonNullRestrictions();
108 107
            ExportAttributes exportAttributes = getParameters().getExportAttributes();
109 108

  
110
            AttributeNamesTranslator nameTranslator = this.getFactory().createAttributeNamesTranslator();
111
            ExportAttributes exportAttr = this.getParameters().getExportAttributes();
112
            exportAttr.setNamesTranslator(nameTranslator);
113 109

  
114 110
            targetTempFeatureType = exportAttributes.getTargetFeatureType().getCopy();
115 111
            targetEditableFeatureType = targetTempFeatureType.getEditable();
......
124 120
                }
125 121
            }
126 122

  
127
            if (this.getParameters().getPrimaryKey() != null) {
128
                EditableFeatureAttributeDescriptor pk = (EditableFeatureAttributeDescriptor) targetEditableFeatureType.get(getTranslatedIdentifier(getParameters().getPrimaryKey()));
123

  
124
            String pkname = getParameters().getPrimaryKey();
125
            if (pkname != null) {
126
                // pkname it's not part of exportattributes list.
127
                pkname = getParameters().getExportAttributes().getNamesTranslator().getNameSuggestion(pkname);
128
                EditableFeatureAttributeDescriptor pk = (EditableFeatureAttributeDescriptor) targetEditableFeatureType.get(pkname);
129 129
                if (pk == null) {
130
                    pk = targetEditableFeatureType.add(
131
                            getTranslatedIdentifier(this.getParameters().getPrimaryKey()),
132
                            DataTypes.LONG
133
                    );
130
                    pk = targetEditableFeatureType.add(pkname, DataTypes.LONG);
134 131
                    pk.setIsPrimaryKey(true);
135 132
                    pk.setIsAutomatic(true);
136 133
                } else {
......
204 201
        }
205 202
    }
206 203

  
207
    protected String getTranslatedIdentifier(String identifier) {
208
        String s = identifier;
209
        ExportJDBCAttributeNamesTranslator nameTranslator = (ExportJDBCAttributeNamesTranslator) this.getParameters().getExportAttributes().getNamesTranslator();
210
        if (nameTranslator.getTranslateIdentifiersToLowerCase()) {
211
            s = s.toLowerCase();
212
        }
213
        if (nameTranslator.getTranslateHyphens()) {
214
            s = s.replace("-", "_");
215
        }
216
        if (nameTranslator.getRemoveSpacesInIdentifiers()) {
217
            s = StringUtils.normalizeSpace(s).replace(" ", "_");
218
        }
219
        return s;
220
    }
221 204

  
205

  
222 206
    private int getGeometryColumnCount(FeatureType featureType) {
223 207
        int count = 0;
224 208
        for (int i = 0; i < featureType.size(); i++) {

Also available in: Unified diff