static T parse()

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);
    }