|
4 | 4 | import org.apache.commons.logging.Log;
|
5 | 5 | import org.apache.commons.logging.LogFactory;
|
6 | 6 | import org.springframework.beans.factory.InitializingBean;
|
| 7 | +import org.springframework.beans.factory.annotation.Autowired; |
| 8 | +import org.springframework.stereotype.Component; |
7 | 9 | import org.springframework.util.Assert;
|
8 | 10 |
|
| 11 | +import javax.annotation.Resource; |
9 | 12 | import java.util.HashMap;
|
10 | 13 | import java.util.Map;
|
11 | 14 |
|
@@ -33,6 +36,12 @@ public class FileNameConstructor implements InitializingBean {
|
33 | 36 | private String preparedTemplate;
|
34 | 37 | private Map<String, String> extensionMap;
|
35 | 38 |
|
| 39 | + |
| 40 | + private boolean needToReplaceWindowsReservedFileNames = false; |
| 41 | + |
| 42 | + @Resource |
| 43 | + private Map<String,String> windowsReservedNamesReplacements; |
| 44 | + |
36 | 45 | /**
|
37 | 46 | * prepare template
|
38 | 47 | * replace keywords with %keyword
|
@@ -89,8 +98,17 @@ public String map2FileName(UserObject userObject) {
|
89 | 98 | filename = filename.replace(nonOracleChar + kw_type_lower, typeName.toLowerCase());
|
90 | 99 | filename = filename.replace(nonOracleChar + kw_type_UPPER, typeName.toUpperCase());
|
91 | 100 |
|
92 |
| - filename = filename.replace(nonOracleChar + kw_objectname_lower, userObject.getName().toLowerCase()); |
93 |
| - filename = filename.replace(nonOracleChar + kw_objectname_UPPER, userObject.getName().toUpperCase()); |
| 101 | + |
| 102 | + String userObjectName = userObject.getName(); |
| 103 | + |
| 104 | + if (needToReplaceWindowsReservedFileNames){ |
| 105 | + if (windowsReservedNamesReplacements.get(userObjectName) != null){ |
| 106 | + userObjectName = windowsReservedNamesReplacements.get(userObjectName); |
| 107 | + } |
| 108 | + } |
| 109 | + |
| 110 | + filename = filename.replace(nonOracleChar + kw_objectname_lower, userObjectName.toLowerCase()); |
| 111 | + filename = filename.replace(nonOracleChar + kw_objectname_UPPER, userObjectName.toUpperCase()); |
94 | 112 |
|
95 | 113 | String extension = extensionMap.get(typeName.toUpperCase());
|
96 | 114 | if (extension == null) {
|
@@ -126,9 +144,19 @@ public void afterPropertiesSet() {
|
126 | 144 | extensionMap = new HashMap<String, String>();
|
127 | 145 | extensionMap.put("DEFAULT", "sql");
|
128 | 146 | }
|
| 147 | + |
| 148 | + |
| 149 | + if (windowsReservedNamesReplacements == null){ |
| 150 | + needToReplaceWindowsReservedFileNames=false; |
| 151 | + |
| 152 | + } |
129 | 153 | }
|
130 | 154 |
|
131 | 155 | public void setExtensionMap(Map<String, String> extensionMap) {
|
132 | 156 | this.extensionMap = extensionMap;
|
133 | 157 | }
|
| 158 | + |
| 159 | + public void setNeedToReplaceWindowsReservedFileNames(boolean needToReplaceWindowsReservedFileNames) { |
| 160 | + this.needToReplaceWindowsReservedFileNames = needToReplaceWindowsReservedFileNames; |
| 161 | + } |
134 | 162 | }
|
0 commit comments