25
25
/**
26
26
* The {@link JavaMerger} merges a patch and the base file of the same class. This merge is a structural merge
27
27
* considering code blocks of fields, methods and inner classes. There will be no merging on statement level
28
- *
28
+ *
29
29
* @author mbrunnli (19.03.2013)
30
30
*/
31
31
public class JavaMerger implements IMerger {
@@ -42,12 +42,12 @@ public class JavaMerger implements IMerger {
42
42
43
43
/**
44
44
* Creates a new {@link JavaMerger}
45
- *
45
+ *
46
46
* @param type
47
- * merger type
47
+ * merger type
48
48
* @param patchOverrides
49
- * if <code>true</code>, conflicts will be resolved by using the patch contents<br>
50
- * if <code>false</code>, conflicts will be resolved by using the base contents
49
+ * if <code>true</code>, conflicts will be resolved by using the patch contents<br>
50
+ * if <code>false</code>, conflicts will be resolved by using the base contents
51
51
* @author mbrunnli (19.03.2013)
52
52
*/
53
53
public JavaMerger (String type , boolean patchOverrides ) {
@@ -58,7 +58,7 @@ public JavaMerger(String type, boolean patchOverrides) {
58
58
59
59
/**
60
60
* {@inheritDoc}
61
- *
61
+ *
62
62
* @author mbrunnli (08.04.2014)
63
63
*/
64
64
@ Override
@@ -69,21 +69,23 @@ public String getType() {
69
69
70
70
/**
71
71
* {@inheritDoc}
72
- *
72
+ *
73
73
* @throws IOException
74
- * if the base file does not exist or could not be written
74
+ * if the base file does not exist or could not be written
75
75
* @throws MergeException
76
- * if problems occurs while merging
76
+ * if problems occurs while merging
77
77
* @author mbrunnli (19.03.2013)
78
78
*/
79
79
@ Override
80
80
public String merge (File base , String patch , String targetCharset ) throws IOException , MergeException {
81
81
82
- ModifyableJavaClass baseClass = getJavaClass (new InputStreamReader (new FileInputStream (base ), targetCharset ));
82
+ ModifyableJavaClass baseClass =
83
+ getJavaClass (new InputStreamReader (new FileInputStream (base ), targetCharset ));
83
84
ModifyableJavaClass patchClass = getJavaClass (new StringReader (patch ));
84
85
85
86
if (baseClass == null ) {
86
- throw new MergeException ("The base file " + base .getAbsolutePath () + " does not declare a valid JavaClass" );
87
+ throw new MergeException ("The base file " + base .getAbsolutePath ()
88
+ + " does not declare a valid JavaClass" );
87
89
} else if (patchClass == null ) {
88
90
throw new MergeException ("The patch does not declare a valid JavaClass" );
89
91
}
@@ -94,9 +96,9 @@ public String merge(File base, String patch, String targetCharset) throws IOExce
94
96
95
97
/**
96
98
* Consolidates all line endings to the System default
97
- *
99
+ *
98
100
* @param codeBlock
99
- * which should be consolidate
101
+ * which should be consolidate
100
102
* @return the consolidated code block
101
103
* @author mbrunnli (04.06.2013)
102
104
*/
@@ -107,12 +109,12 @@ private String consolidateLineEndings(String codeBlock) {
107
109
108
110
/**
109
111
* Merges the two classes
110
- *
112
+ *
111
113
* @return the merged {@link JavaClass}
112
114
* @param baseClass
113
- * {@link JavaClass}
115
+ * {@link JavaClass}
114
116
* @param patchClass
115
- * {@link JavaClass}
117
+ * {@link JavaClass}
116
118
* @author mbrunnli (19.03.2013)
117
119
*/
118
120
private ModifyableJavaClass merge (ModifyableJavaClass baseClass , ModifyableJavaClass patchClass ) {
@@ -127,11 +129,11 @@ private ModifyableJavaClass merge(ModifyableJavaClass baseClass, ModifyableJavaC
127
129
128
130
/**
129
131
* Merges all super types of the two class sources
130
- *
132
+ *
131
133
* @param baseClass
132
- * {@link JavaClass}
134
+ * {@link JavaClass}
133
135
* @param patchClass
134
- * {@link JavaClass}
136
+ * {@link JavaClass}
135
137
* @author mbrunnli (03.06.2013)
136
138
*/
137
139
private void mergeSupertypes (ModifyableJavaClass baseClass , ModifyableJavaClass patchClass ) {
@@ -161,11 +163,11 @@ private void mergeSupertypes(ModifyableJavaClass baseClass, ModifyableJavaClass
161
163
162
164
/**
163
165
* Merges all imports of the two class sources
164
- *
166
+ *
165
167
* @param baseClass
166
- * {@link JavaClass}
168
+ * {@link JavaClass}
167
169
* @param patchClass
168
- * {@link JavaClass}
170
+ * {@link JavaClass}
169
171
* @author mbrunnli (05.04.2013)
170
172
*/
171
173
private void mergeImports (ModifyableJavaClass baseClass , ModifyableJavaClass patchClass ) {
@@ -192,10 +194,11 @@ private void mergeImports(ModifyableJavaClass baseClass, ModifyableJavaClass pat
192
194
193
195
/**
194
196
* Shortens a canonical type name to the type name itself
195
- *
197
+ *
196
198
* @param canonicalName
199
+ * to be shortend
197
200
* @return the Type name
198
- * @author Malte Brunnlieb
201
+ * @author mbrunnli
199
202
*/
200
203
private String getShortTypeName (String canonicalName ) {
201
204
@@ -208,19 +211,19 @@ private String getShortTypeName(String canonicalName) {
208
211
209
212
/**
210
213
* Merges all inner {@link JavaClass}es of the given {@link JavaClass}es
211
- *
214
+ *
212
215
* @param baseClass
213
- * {@link JavaClass}
216
+ * {@link JavaClass}
214
217
* @param patchClass
215
- * {@link JavaClass}
218
+ * {@link JavaClass}
216
219
* @author mbrunnli (19.03.2013)
217
220
*/
218
221
private void mergeInnerClasses (ModifyableJavaClass baseClass , ModifyableJavaClass patchClass ) {
219
222
220
223
for (JavaClass rawInnerPatchClass : patchClass .getNestedClasses ()) {
221
224
ModifyableJavaClass innerPatchClass = (ModifyableJavaClass ) rawInnerPatchClass ;
222
225
ModifyableJavaClass nestedBaseClass =
223
- (ModifyableJavaClass ) baseClass .getNestedClassByName (innerPatchClass .getName ());
226
+ (ModifyableJavaClass ) baseClass .getNestedClassByName (innerPatchClass .getName ());
224
227
if (nestedBaseClass == null ) {
225
228
baseClass .addClass (innerPatchClass );
226
229
} else {
@@ -231,11 +234,11 @@ private void mergeInnerClasses(ModifyableJavaClass baseClass, ModifyableJavaClas
231
234
232
235
/**
233
236
* Merges all fields of the given {@link JavaClass}es
234
- *
237
+ *
235
238
* @param baseClass
236
- * {@link JavaClass}
239
+ * {@link JavaClass}
237
240
* @param patchClass
238
- * {@link JavaClass}
241
+ * {@link JavaClass}
239
242
* @author mbrunnli (19.03.2013)
240
243
*/
241
244
private void mergeFields (ModifyableJavaClass baseClass , ModifyableJavaClass patchClass ) {
@@ -254,11 +257,11 @@ private void mergeFields(ModifyableJavaClass baseClass, ModifyableJavaClass patc
254
257
255
258
/**
256
259
* Merges all methods of the given {@link JavaClass}es
257
- *
260
+ *
258
261
* @param baseClass
259
- * {@link JavaClass}
262
+ * {@link JavaClass}
260
263
* @param patchClass
261
- * {@link JavaClass}
264
+ * {@link JavaClass}
262
265
* @author mbrunnli (19.03.2013)
263
266
*/
264
267
private void mergeMethods (ModifyableJavaClass baseClass , ModifyableJavaClass patchClass ) {
@@ -279,7 +282,7 @@ private void mergeMethods(ModifyableJavaClass baseClass, ModifyableJavaClass pat
279
282
}
280
283
for (JavaMethod patchMethod : patchClass .getMethods ()) {
281
284
JavaMethod baseMethod =
282
- baseClass .getMethodBySignature (patchMethod .getName (), patchMethod .getParameterTypes (true ));
285
+ baseClass .getMethodBySignature (patchMethod .getName (), patchMethod .getParameterTypes (true ));
283
286
if (baseMethod == null ) {
284
287
baseClass .addMethod (patchMethod );
285
288
} else {
@@ -292,9 +295,9 @@ private void mergeMethods(ModifyableJavaClass baseClass, ModifyableJavaClass pat
292
295
293
296
/**
294
297
* Returns the {@link JavaClass} parsed by the given {@link Reader}
295
- *
298
+ *
296
299
* @param reader
297
- * {@link Reader} which contents should be parsed
300
+ * {@link Reader} which contents should be parsed
298
301
* @return the parsed {@link JavaClass}
299
302
* @author mbrunnli (19.03.2013)
300
303
*/
0 commit comments