@NotNull @Override
    public Optional<Version> parse(
            @Nullable String str, @NotNull DetectionLocation detectionLocation) {
        if (str == null) {
            return Optional.empty();
        }

        Pattern pattern = Pattern.compile("tlsv(\\d+(\\.\\d+)?)");
        Matcher matcher = pattern.matcher(str.toLowerCase());
        if (matcher.find()) {
            String number = matcher.group(1);
            if (number.equals("1")) {
                number = "1.0";
            }
            return Optional.of(new Version(number, detectionLocation));
        }
        return Optional.empty();
    }
@Test
    public void test1() {
        DetectionLocation testDetectionLocation =
                new DetectionLocation("testfile", 1, 1, List.of("test"), () -> "SSL");

        final SSLVersionMapper mapper = new SSLVersionMapper();
        final Optional<? extends INode> version = mapper.parse("TLSv1.2", testDetectionLocation);

        assertThat(version).isPresent();
        assertThat(version.get().is(Version.class)).isTrue();
        assertThat(version.get().asString()).isEqualTo("1.2");
    }