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/ExportJDBCAttributeNamesTranslator.java

View differences:

ExportJDBCAttributeNamesTranslator.java
7 7

  
8 8
import java.util.ArrayList;
9 9
import java.util.Collection;
10
import java.util.List;
10 11
import org.apache.commons.lang3.StringUtils;
11 12
import org.gvsig.export.ExportAttributes;
12 13
import org.gvsig.export.spi.AttributeNamesTranslator;
......
17 18
 */
18 19
public class ExportJDBCAttributeNamesTranslator implements AttributeNamesTranslator {
19 20

  
20
    private boolean removeSpacesInIdentifiers;
21
    private boolean translateIdentifiersToLowerCase;
22
    private boolean translateHyphens;
21
    private final ExportJDBCParameters parameters;
23 22

  
24
    public ExportJDBCAttributeNamesTranslator() {
23
    public ExportJDBCAttributeNamesTranslator(ExportJDBCParameters parameters) {
24
        this.parameters = parameters;
25 25
    }
26 26

  
27 27
    private String buildTranslatedName(String source_name, Collection<String> current_names) {
28 28

  
29
        String target_name = source_name;
30
        if (this.removeSpacesInIdentifiers) {
31
            //target_name = target_name.replaceAll("\\s","");
32
            target_name = StringUtils.normalizeSpace(target_name).replace(" ", "_");
33
        }
34
        if (this.translateHyphens) {
35
            target_name = target_name.replace("-", "_");
36
        }
37
        if (this.translateIdentifiersToLowerCase) {
38
            target_name = target_name.toLowerCase();
39
        }
29
        String target_name = this.getNameSuggestion(source_name);
40 30
        if (!current_names.contains(target_name)) {
41 31
            return target_name;
42 32
        }
43
        
44
        if (!current_names.contains(target_name)) {
45
            return target_name;
46
        }
47 33

  
48 34
        for (int i = 0; i < 255; i++) {
49 35
            target_name = source_name + i;
......
80 66
            if (newName.isEmpty()) {
81 67
                return false;
82 68
            }
83
            if (this.removeSpacesInIdentifiers) {
69
            if (this.parameters.getRemoveSpacesInIdentifiers()) {
84 70
                //if (newName.replaceAll("\\s","") != newName) {
85 71
                String s = StringUtils.normalizeSpace(newName).replace(" ", "_");
86 72
                if (!newName.equals(s)) {
87 73
                    return false;
88 74
                }
89 75
            }
90
            if (this.translateHyphens) {
76
            if (this.parameters.getTranslateHyphens()) {
91 77
                if (newName.contains("-")) {
92 78
                    return false;
93 79
                }
94 80
            }
95
            if (this.translateIdentifiersToLowerCase) {
81
            if (this.parameters.getTranslateIdentifiersToLowerCase()) {
96 82
                if (newName.toLowerCase() != newName) {
97 83
                    return false;
98 84
                }
......
103 89

  
104 90
    @Override
105 91
    public String getNameSuggestion(ExportAttributes attributes, int index, String name) {
106
        ArrayList names = new ArrayList();
92
        List names = new ArrayList();
107 93
        boolean oneTime = true;
108 94
        for (ExportAttributes.ExportAttribute attribute : attributes) {
109 95
            if (attribute.getNewName().equals(name) && oneTime) {
......
116 102
        return target_name;
117 103
    }
118 104

  
119
    
120
    public boolean getRemoveSpacesInIdentifiers() {
121
        return this.removeSpacesInIdentifiers;
105

  
106
    @Override
107
    public AttributeNamesTranslator clone() throws CloneNotSupportedException {
108
        ExportJDBCAttributeNamesTranslator clone = (ExportJDBCAttributeNamesTranslator) super.clone();
109
        return clone;
122 110
    }
123
    
124
    public void setRemoveSpacesInIdentifiers(boolean selected) {
125
        this.removeSpacesInIdentifiers = selected;
111

  
112
    @Override
113
    public String getNameSuggestion(String name) {
114
        String target_name = name;
115
        if (this.parameters.getRemoveSpacesInIdentifiers()) {
116
            //target_name = target_name.replaceAll("\\s","");
117
            target_name = StringUtils.normalizeSpace(target_name).replace(" ", "_");
118
        }
119
        if (this.parameters.getTranslateHyphens()) {
120
            target_name = target_name.replace("-", "_");
121
        }
122
        if (this.parameters.getTranslateIdentifiersToLowerCase()) {
123
            target_name = target_name.toLowerCase();
124
        }
125
        return target_name;
126
        
126 127
    }
127
    
128
    public boolean getTranslateIdentifiersToLowerCase() {
129
        return this.translateIdentifiersToLowerCase;
130
    }
131
    
132
    public void setTranslateIdentifiersToLowerCase(boolean selected) {
133
        this.translateIdentifiersToLowerCase = selected;
134
    }
135
    
136
    public boolean getTranslateHyphens() {
137
        return this.translateHyphens;
138
    }
139
    public void setTranslateHyphens(boolean selected) {
140
        this.translateHyphens = selected;
141
    }
142 128

  
143 129
}

Also available in: Unified diff