1 package com.lexicalscope.fluentreflection;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 abstract class AbstractCall<S> implements FluentCall<S> {
20 private final ReflectedTypeFactory reflectedTypeFactory;
21
22 public AbstractCall(final ReflectedTypeFactory reflectedTypeFactory) {
23 this.reflectedTypeFactory = reflectedTypeFactory;
24 }
25
26 @SuppressWarnings({ "unchecked", "rawtypes" }) @Override public FluentObject<S> call(final Object... args) {
27 final S result = callRaw(args);
28 if(result == null) {
29 return null;
30 }
31 return reflectedTypeFactory.reflect((Class) result.getClass(), result);
32 }
33 }