code: @Override
    public final boolean isValid(final Object pvalue, final ConstraintValidatorContext pcontext) {
      final String valueAsString = Objects.toString(pvalue, null);
  
      if (StringUtils.isEmpty(valueAsString)) {
        // empty field is ok
        return true;
      }
      try {
        String countryCode = BeanUtils.getProperty(pvalue, fieldCountryCode);
        final String phoneNumber = BeanUtils.getProperty(pvalue, fieldPhoneNumber);
        if (StringUtils.isEmpty(phoneNumber)) {
          return true;
        }
  
        if (allowLowerCaseCountryCode) {
          countryCode = StringUtils.upperCase(countryCode);
        }
        final PathDefinitionInterface pathDefinition = GWT.create(PathDefinitionInterface.class);
        final String url =
            pathDefinition.getRestBasePath() + "/" + PhoneNumber.ROOT + "/" + PhoneNumber.VALIDATE //
                + "?" + Parameters.COUNTRY + "=" + countryCode //
                + "&" + Parameters.PHONE_NUMBER + "=" + urlEncode(phoneNumber) //
                + "&" + Parameters.DIN_5008 + "=" + PhoneNumberValueRestValidator.this.allowDin5008 //
                + "&" + Parameters.E123 + "=" + PhoneNumberValueRestValidator.this.allowE123 //
                + "&" + Parameters.URI + "=" + PhoneNumberValueRestValidator.this.allowUri //
                + "&" + Parameters.MS + "=" + PhoneNumberValueRestValidator.this.allowMs //
                + "&" + Parameters.COMMON + "=" + PhoneNumberValueRestValidator.this.allowCommon;
        final String restResult = CachedSyncHttpGetCall.syncRestCall(url);
        if (StringUtils.equalsIgnoreCase("TRUE", restResult)) {
          return true;
        }
        switchContext(pcontext);
        return false;
      } catch (final Exception ignore) {
        switchContext(pcontext);
        return false;
      }
    }
docs: {@inheritDoc} check if given string is a valid gln.
  
  @see javax.validation.ConstraintValidator#isValid(java.lang.Object,
  javax.validation.ConstraintValidatorContext)