Eclipseplugins
TriggerFileGenerator.java
1 package com.proalpha.pds.generator;
2 
3 import org.eclipse.jface.dialogs.MessageDialog;
4 import org.eclipse.ui.PlatformUI;
5 import org.slf4j.Logger;
6 import org.slf4j.LoggerFactory;
7 
8 import com.proalpha.pds.templates.data.IGeneratorDataContainer;
9 
16 public class TriggerFileGenerator {
17 
18  private final Logger logger = LoggerFactory.getLogger(TriggerFileGenerator.class);
19 
20  private static final String TRIGGER_MODE_CREATE = "Create";
21  private static final String TRIGGER_MODE_DELETE = "Delete";
22  private static final String TRIGGER_MODE_WRITE = "Write";
23  private static final String TEMPLATE_GENERATOR_CREATE_TRIGGER = "pACreateTrigger";
24  private static final String TEMPLATE_GENERATOR_DELETE_TRIGGER = "pADeleteTrigger";
25  private static final String TEMPLATE_GENERATOR_WRITE_TRIGGER = "pAWriteTrigger";
26 
27  private final IGeneratorDataContainer dataContainer;
28 
39 
40  this.dataContainer = dataContainer;
41  initializeGenerator();
42  }
43 
44  private void initializeGenerator() {
45  try {
46 
47  // Retrieve short description
48  dataContainer.setDescription(
49  this.dataContainer.getRepositoryInformations().getProgramShortDesc(dataContainer.getFileName()));
50 
51  // Fill additional information
52 
53  String tableName = dataContainer.getTableName();
54 
55  // ObjectID?
56 
57  String listOfFieldNames = this.dataContainer.getRepositoryInformations().getListOfTableFields(tableName);
58 
59  Boolean isObjectID = (listOfFieldNames.toLowerCase().contains(tableName.concat("_Obj").toLowerCase()));
60  dataContainer.setIsObjectID(isObjectID);
61 
62  // Company field?
63 
64  Boolean hasCompany = listOfFieldNames.toLowerCase().contains("firma");
65  dataContainer.setHasCompanyField(hasCompany);
66  if (hasCompany) {
67  dataContainer.setCompanyInclude(
68  this.dataContainer.getRepositoryInformations().getTableCompanyInclude(tableName));
69  }
70 
71  // Classic language table?
72 
73  dataContainer.setHasClassicLngTable(
74  (this.dataContainer.getRepositoryInformations().exitsTableInRepository(tableName.concat("Spr"))));
75 
76  // Change log
77  Boolean hasGermanFieldNames = listOfFieldNames.toLowerCase().contains("anlagebenutzer");
78  Boolean hasEnglishFieldNames = listOfFieldNames.toLowerCase().contains("createdby");
79  Boolean hasDateTimeFields = listOfFieldNames.toLowerCase().contains("creationdatetime");
80 
81  dataContainer.setHasChangeLogGerman(hasGermanFieldNames);
82  dataContainer.setHasChangeLogEnglish(hasEnglishFieldNames);
83  dataContainer.setHasChangeLogDateTime(hasDateTimeFields);
84 
85  } catch (Exception e) {
86  logger.debug("Error during initializing Triggergenerator: {}", e.getMessage());
87  MessageDialog.openError(PlatformUI.getWorkbench().getDisplay().getActiveShell(),
88  "Unable to initialize Template", e.getMessage());
89  }
90  }
91 
97  public void generate() throws Exception {
98 
99  String triggerMode = dataContainer.getTriggerMode();
100  String templateGeneratorName = "";
101 
102  if (triggerMode.contains(TRIGGER_MODE_WRITE)) {
103 
104  templateGeneratorName = TEMPLATE_GENERATOR_WRITE_TRIGGER;
105 
106  } else if (triggerMode.contains(TRIGGER_MODE_DELETE)) {
107 
108  templateGeneratorName = TEMPLATE_GENERATOR_DELETE_TRIGGER;
109 
110  } else if (triggerMode.contains(TRIGGER_MODE_CREATE)) {
111 
112  templateGeneratorName = TEMPLATE_GENERATOR_CREATE_TRIGGER;
113 
114  }
115 
116  new ContentGenerator("Trigger Generator", dataContainer, templateGeneratorName).schedule();
117 
118  }
119 }
TriggerFileGenerator(IGeneratorDataContainer dataContainer)