Classes in this File | Line Coverage | Branch Coverage | Complexity | ||||
ClassMethodEnhancement |
|
| 1.5;1,5 |
1 | 0 | /** 2007, Digitalis Informatica. All rights reserved. |
2 | * | |
3 | * Distribuicao e Gestao de Informatica, Lda. | |
4 | * Estrada de Paco de Arcos num.9 - Piso -1 | |
5 | * 2780-666 Paco de Arcos | |
6 | * Telefone: (351) 21 4408990 | |
7 | * Fax: (351) 21 4408999 | |
8 | * http://www.digitalis.pt | |
9 | */ | |
10 | package pt.digitalis.dif.codegen.util; | |
11 | ||
12 | import pt.digitalis.dif.utils.ObjectFormatter; | |
13 | ||
14 | /** | |
15 | * Defines a method enhancement object. | |
16 | * | |
17 | * @author Pedro Viegas <a href="mailto:pviegas@digitalis.pt">pviegas@digitalis.pt</a> | |
18 | * @author Rodrigo Gonçalves <a href="mailto:rgoncalves@digitalis.pt">rgoncalves@digitalis.pt</a><br/> | |
19 | * @created Dec 10, 2007 | |
20 | */ | |
21 | public class ClassMethodEnhancement { | |
22 | ||
23 | /** Defines if source should be appended or overwritten on each addition operation. T is for append, F for overwrite. */ | |
24 | private boolean incrementalMode; | |
25 | ||
26 | /** The name of the method to enhance. */ | |
27 | private String methodName; | |
28 | ||
29 | /** The method source. */ | |
30 | 0 | private StringBuilder source = new StringBuilder(); |
31 | ||
32 | /** the finalizer code if needed */ | |
33 | 0 | String terminatorSource = ""; |
34 | ||
35 | /** | |
36 | * Builds a new method enhancement object. | |
37 | * | |
38 | * @param methodName | |
39 | * the name of the method | |
40 | * @param incrementalMode | |
41 | * defines the incremental mode | |
42 | */ | |
43 | 0 | public ClassMethodEnhancement(String methodName, boolean incrementalMode) { |
44 | 0 | this.methodName = methodName; |
45 | 0 | this.incrementalMode = incrementalMode; |
46 | 0 | } |
47 | ||
48 | /** | |
49 | * Adds source to the method. If it is a non-incremental source method it will overwrite previous source code | |
50 | * | |
51 | * @param source | |
52 | * the source to add | |
53 | */ | |
54 | public void addSource(String source) { | |
55 | 0 | if (isIncrementalMode()) |
56 | 0 | this.source.append(source); |
57 | else | |
58 | 0 | this.source = new StringBuilder(source); |
59 | 0 | } |
60 | ||
61 | /** | |
62 | * Returns the method name. | |
63 | * | |
64 | * @return the method name | |
65 | */ | |
66 | public String getMethodName() { | |
67 | 0 | return methodName; |
68 | } | |
69 | ||
70 | /** | |
71 | * Returns the source. | |
72 | * | |
73 | * @return the source | |
74 | */ | |
75 | public String getSource() { | |
76 | 0 | if (terminatorSource == null || "".equals(terminatorSource)) |
77 | 0 | return source.toString(); |
78 | else | |
79 | 0 | return source.toString() + "\n" + terminatorSource; |
80 | } | |
81 | ||
82 | /** | |
83 | * Inspector for the 'incrementalMode' property. | |
84 | * | |
85 | * @return the incrementalMode property value | |
86 | */ | |
87 | public boolean isIncrementalMode() { | |
88 | 0 | return incrementalMode; |
89 | } | |
90 | ||
91 | /** | |
92 | * Modifier for the 'source' attribute. | |
93 | * | |
94 | * @param source the new source value to set | |
95 | */ | |
96 | public void setSource(StringBuilder source) | |
97 | { | |
98 | 0 | this.source = source; |
99 | 0 | } |
100 | ||
101 | /** | |
102 | * Adds source as the methods terminator (finalizer) code. it will overwrite previous source terminator code | |
103 | * | |
104 | * @param source | |
105 | * the source to add | |
106 | */ | |
107 | public void setTerminator(String source) { | |
108 | 0 | this.terminatorSource = source; |
109 | 0 | } |
110 | ||
111 | ||
112 | /** | |
113 | * @see java.lang.Object#toString() | |
114 | */ | |
115 | @Override | |
116 | public String toString() { | |
117 | 0 | ObjectFormatter formatter = new ObjectFormatter(); |
118 | ||
119 | 0 | formatter.addItem("Method Name", this.methodName); |
120 | 0 | formatter.addItem("Incremental", incrementalMode); |
121 | 0 | formatter.addItem("Source", source); |
122 | 0 | formatter.addItem("Terminator Source", terminatorSource); |
123 | ||
124 | 0 | return formatter.getFormatedObject(); |
125 | } | |
126 | } |