1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.openehealth.ipf.platform.camel.core.closures;
17
18 import groovy.lang.Closure;
19
20 import org.openehealth.ipf.commons.core.modules.api.Transmogrifier;
21
22
23
24
25
26
27 public class DelegatingTransmogrifier extends ClosureAdapter implements Transmogrifier<Object, Object> {
28
29 public DelegatingTransmogrifier(Closure closure) {
30 super(closure);
31 }
32
33 @Override
34 public Object zap(Object object, Object... params) {
35 if (getClosure().getParameterTypes().length == 2) {
36 return call(object, prepare(params));
37 } else {
38 return call(object);
39 }
40 }
41
42 protected static Object prepare(Object... params) {
43 if (params == null) {
44 return null;
45 }
46 if (params.length == 1) {
47 return params[0];
48 }
49 return params;
50 }
51 }