in domain/src/main/java/demoapp/dom/progmodel/customvaluetypes/embeddedvalues/ComplexNumber.java [45:56]
static <T extends ComplexNumber> T parse(
final String complexNumberString, final BiFunction<Double, Double, T> factory) {
if(!org.springframework.util.StringUtils.hasLength(complexNumberString)
|| complexNumberString.contains("NaN")) {
return null;
}
// this is a naive implementation, just for demo
final String[] parts = complexNumberString.split("\\+|i");
val real = Double.parseDouble(parts[0]);
val imaginary = Double.parseDouble(parts[1]);
return factory.apply(real, imaginary);
}