@@ -40,17 +40,21 @@ class SourceTargetConverter[SS, TT](
40
40
}
41
41
42
42
private [this ] def canConvertStrictSource (sm : Manifest [_], tm : Manifest [_]) = {
43
- val from = sm.erasure
44
- val to = tm.erasure
45
-
46
- sourceType.erasure.equals(from) && targetType.erasure.equals(to)
43
+ SourceTargetConverter .canConvertWithStrictSource(
44
+ sourceType,
45
+ targetType,
46
+ sm,
47
+ tm
48
+ )
47
49
}
48
50
49
51
private [this ] def canConvertNonStrictSource (sm : Manifest [_], tm : Manifest [_]) = {
50
- val from = sm.erasure
51
- val to = tm.erasure
52
-
53
- sourceType.erasure.isAssignableFrom(from) && targetType.erasure.equals(to)
52
+ SourceTargetConverter .canConvertWithNonStrictSource(
53
+ sourceType,
54
+ targetType,
55
+ sm,
56
+ tm
57
+ )
54
58
}
55
59
56
60
@@ -70,7 +74,24 @@ class SourceTargetConverter[SS, TT](
70
74
}
71
75
}
72
76
73
-
74
77
override def toString () =
75
78
" STConverter(" + List (sourceType, targetType, isStrictSource, function).mkString(" ," ) + " )"
76
79
}
80
+
81
+ object SourceTargetConverter {
82
+ def canConvertWithStrictSource (sourceType : Manifest [_],
83
+ targetType : Manifest [_],
84
+ givenSourceType : Manifest [_],
85
+ givenTargetType : Manifest [_]): Boolean = {
86
+
87
+ sourceType.erasure.equals(givenSourceType.erasure) && targetType.erasure.equals(givenTargetType.erasure)
88
+ }
89
+
90
+ def canConvertWithNonStrictSource (sourceType : Manifest [_],
91
+ targetType : Manifest [_],
92
+ givenSourceType : Manifest [_],
93
+ givenTargetType : Manifest [_]): Boolean = {
94
+
95
+ sourceType.erasure.isAssignableFrom(givenSourceType.erasure) && targetType.erasure.equals(givenTargetType.erasure)
96
+ }
97
+ }
0 commit comments