|
28 | 28 | import com.envimate.mapmate.deserialization.*; |
29 | 29 | import com.envimate.mapmate.deserialization.methods.DeserializationCPMethod; |
30 | 30 | import com.envimate.mapmate.deserialization.methods.DeserializationDTOMethod; |
| 31 | +import com.envimate.mapmate.deserialization.methods.StaticMethodCPMethod; |
31 | 32 | import com.envimate.mapmate.deserialization.validation.*; |
32 | 33 | import com.envimate.mapmate.injector.InjectorFactory; |
33 | 34 | import com.envimate.mapmate.injector.InjectorLambda; |
|
40 | 41 | import java.lang.reflect.Field; |
41 | 42 | import java.lang.reflect.Method; |
42 | 43 | import java.util.*; |
| 44 | +import java.util.function.Function; |
43 | 45 | import java.util.stream.Collectors; |
44 | 46 |
|
45 | 47 | import static com.envimate.mapmate.builder.DefaultPackageScanner.defaultPackageScanner; |
|
56 | 58 | import static com.envimate.mapmate.serialization.SerializableDataTransferObject.serializableDataTransferObject; |
57 | 59 | import static com.envimate.mapmate.serialization.SerializableDefinitions.serializableDefinitions; |
58 | 60 | import static com.envimate.mapmate.serialization.Serializer.theSerializer; |
| 61 | +import static com.envimate.mapmate.serialization.methods.ProvidedMethodSerializationCPMethod.providedMethodSerializationCPMethod; |
59 | 62 | import static com.envimate.mapmate.validators.NotNullValidator.validateNotNull; |
60 | 63 |
|
61 | 64 | public final class MapMateBuilder { |
@@ -199,6 +202,16 @@ public MapMateBuilder withCustomPrimitive(final CustomPrimitiveDefinition custom |
199 | 202 | return this; |
200 | 203 | } |
201 | 204 |
|
| 205 | + public <T> MapMateBuilder withCustomPrimitive(final Class<T> type, |
| 206 | + final Function<T, String> serializationMethod, |
| 207 | + final Function<String, T> deserializationMethod) { |
| 208 | + return this.withCustomPrimitive(customPrimitiveDefinition( |
| 209 | + type, |
| 210 | + providedMethodSerializationCPMethod(type, serializationMethod), |
| 211 | + StaticMethodCPMethod.theStaticMethodCPMethod(deserializationMethod) |
| 212 | + )); |
| 213 | + } |
| 214 | + |
202 | 215 | public MapMateBuilder withCustomPrimitive(final Class<?> type, |
203 | 216 | final Method serializationMethod, |
204 | 217 | final Method deserializationMethod) { |
|
0 commit comments