Eclipseplugins
pAProperty.java
1 package com.proalpha.pds.templates.jet.openEdge;
2 
3 import com.openedge.pdt.core.template.ITemplateGenerator;
4 import com.openedge.pdt.core.template.TemplateGenerationException;
5 import com.openedge.pdt.text.template.OETemplateUtil;
6 import com.openedge.pdt.core.template.ITemplateArgs;
7 
8 import com.openedge.core.metadata.OOABLProperty;
9 import com.openedge.core.metadata.ReferenceProperty;
10 import com.openedge.core.metadata.DataTypeProperty;
11 import com.openedge.core.metadata.Mode;
12 
13 public class pAProperty implements ITemplateGenerator
14  {
15  protected static String nl;
16  public static synchronized pAProperty create(String lineSeparator)
17  {
18  nl = lineSeparator;
19  pAProperty result = new pAProperty();
20  nl = null;
21  return result;
22  }
23 
24  public final String NL = nl == null ? (System.getProperties().getProperty("line.separator")) : nl;
25  protected final String TEXT_1 = " ";
26  protected final String TEXT_2 = NL + " define ";
27  protected final String TEXT_3 = " property ";
28  protected final String TEXT_4 = " as ";
29  protected final String TEXT_5 = " ";
30  protected final String TEXT_6 = NL + "\t";
31  protected final String TEXT_7 = "get():" + NL + "" + NL + " end get." + NL + " ";
32  protected final String TEXT_8 = "get.";
33  protected final String TEXT_9 = "set(input arg as ";
34  protected final String TEXT_10 = "):" + NL + "" + NL + " end set.";
35  protected final String TEXT_11 = "set.";
36  protected final String TEXT_12 = NL + " ";
37 
38 /* (non-javadoc)
39  * @see ITemplateGenerator#generate(Object)
40  */
41 public String generate(ITemplateArgs argument) throws TemplateGenerationException
42  {
43  final StringBuffer stringBuffer = new StringBuffer();
44 
45  OOABLProperty data = (OOABLProperty) argument.getObj("propertyinfo");
46  ReferenceProperty refProperty = null;
47  DataTypeProperty dataTypeProperty = null;
48  if (data instanceof ReferenceProperty)
49  refProperty = (ReferenceProperty) data;
50  if (data instanceof DataTypeProperty)
51  dataTypeProperty = (DataTypeProperty) data;
52 
53  stringBuffer.append(TEXT_1);
54  stringBuffer.append(OETemplateUtil.generateAnnotations(data.getAnnotations(), NL));
55  stringBuffer.append(TEXT_2);
56  stringBuffer.append(Mode.ACESSORS[data.getMode()]);
57  stringBuffer.append( data.isStatic()?" static":"");
58  stringBuffer.append(TEXT_3);
59  stringBuffer.append(data.getName());
60  if(dataTypeProperty != null) {
61  stringBuffer.append(TEXT_4);
62  stringBuffer.append(dataTypeProperty.getType());
63  stringBuffer.append(TEXT_5);
64  stringBuffer.append(dataTypeProperty.isInitial()?"initial "+dataTypeProperty.getInitialValue()+" ":"" );
65  stringBuffer.append(dataTypeProperty.isNoUndo()?"no-undo":"");
66  } else if (refProperty != null) {
67  stringBuffer.append(TEXT_4);
68  stringBuffer.append(OETemplateUtil.isProgressKeyWord(refProperty.getType())?"class":"" );
69  stringBuffer.append(TEXT_5);
70  stringBuffer.append(refProperty.getType());
71  stringBuffer.append(TEXT_5);
72  stringBuffer.append(refProperty.isNoUndo()?" no-undo":"");
73  stringBuffer.append(TEXT_5);
74  }
75  if (data.isGet()) {
76  stringBuffer.append(TEXT_6);
77  stringBuffer.append((data.getGetMode() < data.getMode())?Mode.ACESSORS[data.getGetMode()] + " ":"");
78  if (data.isGetBody()) {
79  stringBuffer.append(TEXT_7);
80  } else {
81  stringBuffer.append(TEXT_8);
82  } }
83  if (data.isSet()) {
84  stringBuffer.append((data.getSetMode() < data.getMode())?Mode.ACESSORS[data.getSetMode()] + " ":"");
85  if (data.isSetBody()) {
86  stringBuffer.append(TEXT_9);
87  stringBuffer.append(data.getType());
88  stringBuffer.append(TEXT_10);
89  } else {
90  stringBuffer.append(TEXT_11);
91  } }
92  stringBuffer.append(TEXT_12);
93  return stringBuffer.toString();
94  }
95 }