Eclipseplugins
RepositoryInformationsImpl.java
1 package com.proalpha.pds.paconnector.repository;
2 
3 import java.io.File;
4 import java.util.ArrayList;
5 import java.util.Collections;
6 import java.util.Hashtable;
7 import java.util.List;
8 import java.util.regex.Pattern;
9 
10 import com.proalpha.pds.exception.ProALPHANotAvailableException;
11 import com.proalpha.pds.paconnector.PaProject;
12 import com.proalpha.pds.paconnector.RunCommonPaProgram;
13 
15 
16  public static final List<String> instanceExtentions = Collections.unmodifiableList(
17  new ArrayList<String>() {
20  private static final long serialVersionUID = 459592606466143041L;
21 
22  {
23  add("w");
24  add("p");
25  add("cls");
26  add("dyn");
27  // etc
28  }});
29 
31  super(paProject);
32  }
33 
34  @Override
35  public Boolean exitsInstanceInRepository(String instanceName) {
36  return runSupportProcedure("ds_oea12.p", instanceName).equals("yes");
37  }
38 
39  @Override
40  public Boolean exitsTableInRepository(String tableName) {
41  return runSupportProcedure("ds_oea29.p", tableName).endsWith("yes");
42  }
43 
44  @Override
45  public String getAbsolutPath(String fileName) {
46 
47  String projectRoot = new File(".").getAbsolutePath();
48  return runSupportProcedure("ds_oea02.p", projectRoot, fileName);
49  }
50 
51  @Override
52  public String getClassName(String classOID) {
53  return runSupportProcedure("ds_oea11.p", classOID, "DRC_Class_ID");
54  }
55 
56  @Override
57  public String getClassInformation(String drcClassObj, String request) {
58  return runSupportProcedure("ds_oea11.p", drcClassObj, request);
59  }
60 
61  @Override
62  public String getClassOBJ(String fileName) {
63  if (isInstanceObject(fileName))
64  return runSupportProcedure("ds_oea10.p", fileName, "DRC_Class_Obj");
65  else
66  return "";
67  }
68 
69  @Override
70  public String getInstanceID(String instanceObj) {
71  return runSupportProcedure("ds_oea46.p", instanceObj, "DRC_Instance_ID");
72  }
73 
74  @Override
75  public String getInstanceObj(String fileName) {
76  return runSupportProcedure("ds_oea48.p", fileName, "DRC_Instance_Obj");
77 
78  }
79 
80  @Override
81  public String getClassGroupOf(String className) {
82  return getClassInformation(className, "ClassGroupCode");
83  }
84 
85  @Override
86  public String getListOfTableFields(String tableName) {
87  return runSupportProcedure("ds_oea28.p", tableName, "ListOfFieldNames");
88  }
89 
90  @Override
91  public String getListOFSubClasses(String rootClass) {
92  return getClassInformation(rootClass, "ListOfSubClasses");
93  }
94 
95  @Override
96  public String getMessageText(String messageCode, String text) {
97  return runSupportProcedure("ds_oea16.p", messageCode, text);
98  }
99 
100  @Override
101  public String getModule(String fileName) {
102  Hashtable<String, String> selection = new Hashtable<String, String>();
103 
104  selection.put("ModulName", getProductName(fileName));
105  selection.put("Kennbuchstabe", fileName.substring(1, 2));
106 
107  return getRecordField("D_UnterModul", selection, "UnterModulName");
108  }
109 
110  @Override
111  public String getModuleDescription(String fileName) {
112  Hashtable<String, String> selection = new Hashtable<String, String>();
113  selection.put("ModulName", getProductName(fileName));
114  selection.put("UnterModulName", getModule(fileName));
115  selection.put("Sprache", "###Language###");
116 
117  return getRecordField("D_UnterModulSpr", selection, "Bezeichnung");
118  }
119 
120  @Override
121  public String getProductDescription(String fileName) {
122  Hashtable<String, String> selection = new Hashtable<String, String>();
123 
124  selection.put("ModulName", getProductName(fileName));
125  selection.put("Sprache", "###Language###");
126 
127  return getRecordField("D_ModulSpr", selection, "Bezeichnung");
128  }
129 
130  @Override
131  public String getProductName(String fileName) {
132  Hashtable<String, String> selection = new Hashtable<String, String>();
133 
134  selection.put("Kennbuchstabe", fileName.substring(0, 1));
135 
136  return getRecordField("D_Modul", selection, "ModulName");
137  }
138 
139  @Override
140  public String getProgramShortDesc(String fileName) {
141  if (isInstanceObject(fileName))
142  return runSupportProcedure("ds_oea10.p", fileName, "ShortDesc1");
143  else
144  return "";
145  }
146 
147  @Override
148  public String getRelativePath(String fileName) {
149 
150  return runSupportProcedure("ds_oea13.p", fileName);
151  }
152 
153  @Override
154  public String getTableCompanyInclude(String tableName) {
155  return getTableInformation(tableName, "CompanyInclude");
156  }
157 
158  @Override
159  public String getTableInformation(String tableName, String request) {
160  return runSupportProcedure("ds_oea28.p", tableName, request);
161  }
162 
163  @Override
164  public Object isInstanceOfClass(String instance, String className) {
165  return runSupportProcedure("ds_oea52.p", instance, className);
166  }
167 
168  @Override
169  public boolean isObjectBlockable(String fileName) {
170  if (isInstanceObject(fileName))
171  return runSupportProcedure("ds_oea10.p", fileName, "blockable").equals("yes");
172  else
173  return false;
174  }
175 
176  private boolean isInstanceObject(String fileName) {
177 
178  // do not request a object which is not an Instance. Otherwise a Error
179  // will be displayed by pA
180  if(fileName.contains(".")) {
181  String FileExt = fileName.split(Pattern.quote("."))[1];
182  return instanceExtentions.contains(FileExt);
183  }
184  else
185  return false;
186 
187  }
188 }
String getRecordField(String tableName, Hashtable< String, String > selection, String fieldName)
String runSupportProcedure(String supportProcedure, String... parameters)