Skip to content
This repository was archived by the owner on Aug 17, 2019. It is now read-only.

Commit 265c2f4

Browse files
committed
Add decision-oriented class-based API
1 parent a5edf6a commit 265c2f4

File tree

1 file changed

+19
-3
lines changed

1 file changed

+19
-3
lines changed

src/main/scala/com/ckkloverdos/convert/SourceTargetConverter.scala

+19-3
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
package com.ckkloverdos.convert
1818

1919
/**
20-
*
20+
*
2121
* @author Christos KK Loverdos <loverdos@gmail.com>.
2222
*/
2323
class SourceTargetConverter[SS, TT](
@@ -84,14 +84,30 @@ object SourceTargetConverter {
8484
givenSourceType: Manifest[_],
8585
givenTargetType: Manifest[_]): Boolean = {
8686

87-
sourceType.erasure.equals(givenSourceType.erasure) && targetType.erasure.equals(givenTargetType.erasure)
87+
canConvertWithStrictSource(sourceType.erasure, targetType.erasure, givenSourceType, givenTargetType)
88+
}
89+
90+
def canConvertWithStrictSource(sourceType: Class[_],
91+
targetType: Class[_],
92+
givenSourceType: Manifest[_],
93+
givenTargetType: Manifest[_]): Boolean = {
94+
95+
sourceType.equals(givenSourceType.erasure) && targetType.equals(givenTargetType.erasure)
8896
}
8997

9098
def canConvertWithNonStrictSource(sourceType: Manifest[_],
9199
targetType: Manifest[_],
92100
givenSourceType: Manifest[_],
93101
givenTargetType: Manifest[_]): Boolean = {
94102

95-
sourceType.erasure.isAssignableFrom(givenSourceType.erasure) && targetType.erasure.equals(givenTargetType.erasure)
103+
canConvertWithNonStrictSource(sourceType.erasure, targetType.erasure, givenSourceType, givenTargetType)
104+
}
105+
106+
def canConvertWithNonStrictSource(sourceType: Class[_],
107+
targetType: Class[_],
108+
givenSourceType: Manifest[_],
109+
givenTargetType: Manifest[_]): Boolean = {
110+
111+
sourceType.isAssignableFrom(givenSourceType.erasure) && targetType.equals(givenTargetType.erasure)
96112
}
97113
}

0 commit comments

Comments
 (0)