@Override
  public String getAsString(FacesContext context, UIComponent component, Object value) {
    if (value == null) {
      return null;
    }
    if (value instanceof String
        && NumberUtil.isBigInteger(StringUtils.removeSpaces(value.toString()))) {
      value = new BigInteger(StringUtils.removeSpaces(value.toString()));
    }
    if (value instanceof BigInteger) {
      String stringVal = value.toString();

      if (stringVal.length() < CELLPHONE_NUM_LENGTH) {
        return "595 9";
      }

      stringVal =
          stringVal
              .substring(0, 3)
              .concat(" ")
              .concat(stringVal.substring(3, 6))
              .concat(" ")
              .concat(stringVal.substring(6));

      return stringVal;
    } else {
      throw new IllegalArgumentException(
          "Object: "
              + value
              + " of type:"
              + value.getClass().getName()
              + "; expected type: BigInteger");
    }
  }
 @Override
 public Object getAsObject(FacesContext context, UIComponent component, String value) {
   if (!NumberUtil.isBigInteger(StringUtils.removeSpaces(value))) {
     return null;
   }
   if (StringUtils.removeSpaces(value).length() != CELLPHONE_NUM_LENGTH) {
     return null;
   }
   return new BigInteger(StringUtils.removeSpaces(value));
 }