code: @InterfaceStability.Committed
      public Integer getAndDecryptInt(String name, String providerName) throws Exception {
          //let it fail in the more general case where it isn't actually a number
          Number number = (Number) getAndDecrypt(name, providerName);
          if (number == null) {
              return null;
          } else if (number instanceof Integer) {
              return (Integer) number;
          } else {
              return number.intValue(); //autoboxing to Integer
          }
      }
docs: Retrieves the decrypted value from the field name and casts it to {@link Integer}.
  
  Note that if value was stored as another numerical type, some truncation or rounding may occur.
  
  @param name the name of the field.
  @param providerName crypto provider name for decryption.
  @return the result or null if it does not exist.