WingtipsToLightStepLifecycleListener implements SpanLifecycleListener { protected boolean isHex(String id, boolean allowUppercase) { for (int i = 0, length = id.length(); i < length; i++) { char c = id.charAt(i); if ((c < '0' || c > '9') && (c < 'a' || c > 'f')) { if (!allowUppercase) { return false; } else if (c < 'A' || c > 'F') { return false; } } } return true; } WingtipsToLightStepLifecycleListener(
        @NotNull String serviceName,
        @NotNull String accessToken,
        @NotNull String satelliteUrl,
        int satellitePort
    );  WingtipsToLightStepLifecycleListener(@NotNull JRETracer tracer); @Override void spanSampled(Span wingtipsSpan); @Override void spanStarted(Span wingtipsSpan); @Override void spanCompleted(Span wingtipsSpan);  }
@DataProvider(value = { "true", "false" }) @Test public void isHex_works_as_expected(boolean allowUppercase) { for (char c = Character.MIN_VALUE; c < Character.MAX_VALUE; c++) { boolean isHexDigit = (c >= '0') && (c <= '9'); boolean isHexLowercase = (c >= 'a') && (c <= 'f'); boolean isHexUppercase = (c >= 'A') && (c <= 'F'); boolean expectedResult = isHexDigit || isHexLowercase || (allowUppercase && isHexUppercase); boolean result = listener.isHex(String.valueOf(c), allowUppercase); assertThat(result) .withFailMessage("Did not get expected result for char with int value " + (int)c + ". Expected result: " + expectedResult) .isEqualTo(expectedResult); } }