1 package com.proalpha.pds.templates.data;
3 import java.util.HashMap;
6 import java.util.Map.Entry;
8 import org.eclipse.core.resources.IFile;
9 import org.eclipse.core.resources.IFolder;
10 import org.eclipse.core.resources.ResourcesPlugin;
11 import org.eclipse.core.runtime.IStatus;
12 import org.eclipse.core.runtime.Path;
13 import org.eclipse.core.runtime.Status;
15 import com.proalpha.pds.paconnector.PaProject;
16 import com.proalpha.pds.paconnector.parameter.StartparameterReader;
17 import com.proalpha.pds.paconnector.repository.RepositoryInformations;
18 import com.proalpha.pds.templates.Activator;
19 import com.proalpha.pds.templates.helper.FileSystemUtils;
20 import com.proalpha.pds.templates.jaxb.TtUserExits.TtUserExitsRow;
22 class GeneratorDataContainer
implements IGeneratorDataContainer {
24 private Map<String, Object> wizardSettings;
26 private IFile outputFile;
28 private final StartparameterReader starparameterReader;
29 private final RepositoryInformations repositoryInformations;
30 private PaProject paProject;
32 public PaProject getPaProject() {
36 public GeneratorDataContainer(Map<String, Object> data, PaProject paProject,
37 StartparameterReader starparameterReader, RepositoryInformations repositoryInformations) {
39 this.wizardSettings =
new HashMap<>();
40 this.starparameterReader = starparameterReader;
41 this.repositoryInformations = repositoryInformations;
43 this.paProject = paProject;
45 initializeDataContainer(data);
48 public String getCustomLevel() {
50 return paProject.getCustomLevel();
53 public Map<String, Object> getDataAsMap() {
54 return wizardSettings;
57 public String getDescription() {
58 return getWizardSetting(GeneratorSettingsConstans.DESCRIPTION);
61 public String getFileName() {
62 return getWizardSetting(GeneratorSettingsConstans.FILE_NAME);
65 public String getObjectInfo() {
66 return getWizardSetting(GeneratorSettingsConstans.OBJECT_INFO);
69 public String getParentObject() {
70 return getWizardSetting(GeneratorSettingsConstans.PARENT_OBJECT);
73 public String getRelativePath() {
74 return getWizardSetting(GeneratorSettingsConstans.RELATIVE_PATH);
77 public String getTableName() {
78 return getWizardSetting(GeneratorSettingsConstans.TABLE_NAME);
81 public String getTriggerMode() {
82 return getWizardSetting(GeneratorSettingsConstans.TRIGGER_MODE);
85 public String getVersion(){
89 return paProject.getVersion();
92 private String getWizardSetting(String key) {
93 return (String) wizardSettings.get(key);
96 private void initializeDataContainer(Map<String, Object> initializeData) {
98 if ((initializeData !=
null) && (initializeData.size() > 0)) {
100 wizardSettings.putAll(initializeData);
106 if ((wizardSettings.containsKey(GeneratorSettingsConstans.FILE_NAME))
107 && (!wizardSettings.containsKey(GeneratorSettingsConstans.RELATIVE_PATH))) {
108 setFileNameDependentAttrbutes(getFileName());
112 setSortCase(starparameterReader.getUserExitSortCase());
116 private void setFileNameDependentAttrbutes(String fileName) {
117 setRelativePath(fileName);
118 setProduct(repositoryInformations.getProductName(fileName));
119 setProductDescription(repositoryInformations.getProductDescription(fileName));
120 setModule(repositoryInformations.getModule(fileName));
121 setModuleDescription(repositoryInformations.getModuleDescription(fileName));
124 public void setAuthor(String author) {
125 setWizardSetting(GeneratorSettingsConstans.AUTHOR, author);
128 public void setBALPTemplateList(List<String> balpTemplateList) {
129 wizardSettings.put(
"baltTemplateList", balpTemplateList);
132 public void setCompanyInclude(String companyInclude) {
133 setWizardSetting(GeneratorSettingsConstans.COMPANY_INCLUDE, companyInclude);
136 public void setDescription(String description) {
137 setWizardSetting(GeneratorSettingsConstans.DESCRIPTION, description);
140 public void setFileName(String fileName) {
141 setWizardSetting(GeneratorSettingsConstans.FILE_NAME, fileName);
142 setFileNameDependentAttrbutes(fileName);
145 public void setHasChangeLogEnglish(Boolean hasChangeLogEnglish) {
146 setWizardSetting(GeneratorSettingsConstans.CHANGE_LOG_ENGLISH, String.valueOf(hasChangeLogEnglish));
149 public void setHasChangeLogGerman(Boolean hasChangeLogGerman) {
150 setWizardSetting(GeneratorSettingsConstans.CHANGE_LOG_GERMAN, String.valueOf(hasChangeLogGerman));
153 public void setHasClassicLngTable(Boolean hasClassicLngTable) {
154 setWizardSetting(GeneratorSettingsConstans.HAS_CLASSIC_LNG_TABLE, String.valueOf(hasClassicLngTable));
157 public void setHasCompanyField(Boolean hasCompanyField) {
158 setWizardSetting(GeneratorSettingsConstans.HAS_COMPANY, String.valueOf(hasCompanyField));
161 public void setIsObjectID(Boolean isObjectID) {
162 setWizardSetting(GeneratorSettingsConstans.Object_ID, String.valueOf(isObjectID));
165 public void setMainClass(String mainClass) {
166 setWizardSetting(GeneratorSettingsConstans.MAIN_CLASS, mainClass);
169 private void setModule(String module) {
170 setWizardSetting(GeneratorSettingsConstans.MODULE, module);
173 private void setModuleDescription(String moduleDescription) {
174 setWizardSetting(GeneratorSettingsConstans.MODULE_DESCRIPTION, moduleDescription);
177 public void setParentObject(String parentClassName) {
178 setWizardSetting(GeneratorSettingsConstans.PARENT_OBJECT, parentClassName);
181 private void setProduct(String productName) {
182 setWizardSetting(GeneratorSettingsConstans.PRODUCT, productName);
185 private void setProductDescription(String productDescription) {
186 setWizardSetting(GeneratorSettingsConstans.PRODUCT_DESCRIPTION, productDescription);
189 public void setQualifiedClassName(String qualifiedClassName) {
190 setWizardSetting(GeneratorSettingsConstans.QUALIFIED_CLASS_NAME, qualifiedClassName);
193 public void setQualifiedClassParentClassName(String qualifiedParentClassName) {
194 setWizardSetting(GeneratorSettingsConstans.QUALIFIED_PARENT_CLASS_NAME, qualifiedParentClassName);
197 private void setRelativePath(String fileName) {
198 String relativePath = repositoryInformations.getRelativePath(fileName);
199 setWizardSetting(GeneratorSettingsConstans.RELATIVE_PATH, relativePath);
202 private void setShortcut(String shortcut) {
203 setWizardSetting(GeneratorSettingsConstans.SHORTCUT, shortcut);
206 private void setSortCase(String sort) {
207 setWizardSetting(GeneratorSettingsConstans.SORT, sort);
210 public void setUserExitFiles(List<String> userExitList) {
211 wizardSettings.put(
"userExitList", userExitList);
214 public void setUserExits(List<TtUserExitsRow> userExits) {
215 wizardSettings.put(
"UserExits", userExits);
218 public void setVersion(String proALPHAVersion) {
219 setWizardSetting(GeneratorSettingsConstans.VERSION, proALPHAVersion);
222 private void setWizardSetting(String key, String value) {
223 wizardSettings.put(key, value);
226 public void setXBaseName(String xbaseName) {
227 setWizardSetting(GeneratorSettingsConstans.XBASE_NAME, xbaseName);
230 public void setOutputFile(IFile file) {
234 public IFile getOutputFile() throws Exception {
236 if (outputFile ==
null) {
237 String container = getContainer();
238 IFolder outputFolder =
null;
240 if (container !=
null) {
241 outputFolder = ResourcesPlugin.getWorkspace().getRoot().getFolder(
new Path(container));
244 if (outputFolder ==
null) {
245 outputFolder = starparameterReader.getWorkingDirectory();
248 outputFile = FileSystemUtils.createFileInWorkingDirectory(outputFolder, getRelativePath(), getFileName());
254 private String getContainer() {
255 return getWizardSetting(GeneratorSettingsConstans.CONTAINER_NAME);
258 public Boolean isGenerationConfirmed() {
261 return this.paProject.isAvailable();
262 }
catch (Exception e) {
264 String message = (e.getMessage().length() > 0) ? e.getMessage() :
"Could not confirm generation.";
266 IStatus status =
new Status(IStatus.ERROR, Activator.PLUGIN_ID, message);
267 Activator.getDefault().getLog().log(status);
269 return Boolean.FALSE;
273 public void setCustomLevel(String customLevel) {
274 setWizardSetting(GeneratorSettingsConstans.CUSTOM_LEVEL, customLevel);
277 public void setObjectInfo(String objectInfo) {
278 setWizardSetting(GeneratorSettingsConstans.OBJECT_INFO, objectInfo);
281 public Map<String, Object> getWizardSettings() {
282 return wizardSettings;
285 public StartparameterReader getStarparameterReader() {
286 return starparameterReader;
289 public RepositoryInformations getRepositoryInformations() {
290 return repositoryInformations;
293 public void setTriggerMode(String triggerMode) {
294 setWizardSetting(GeneratorSettingsConstans.TRIGGER_MODE, triggerMode);
297 public void setQualifiedClassStandardClassName(String qualifiedStandardClassName) {
298 setWizardSetting(GeneratorSettingsConstans.QUALIFIED_STANDARD_CLASS_NAME, qualifiedStandardClassName);
301 public void setTableName(String tableName) {
302 setWizardSetting(GeneratorSettingsConstans.TABLE_NAME, tableName);
305 public Map<String, Object> cloneWizardSettings() {
306 HashMap<String, Object> exitFileGeneratorSettings =
new HashMap<String, Object>();
308 for (Entry<String, Object> entry : wizardSettings.entrySet()) {
309 exitFileGeneratorSettings.put(entry.getKey(), entry.getValue());
312 return exitFileGeneratorSettings;
315 public String getSortCase() {
316 return getWizardSetting(GeneratorSettingsConstans.SORT);
320 public void setHasChangeLogDateTime(Boolean hasDateTimeFields) {
321 setWizardSetting(GeneratorSettingsConstans.CHANGE_LOG_DATETIME, String.valueOf(hasDateTimeFields));