code: private void checkValue(Object value)
      {
          if (this.nonNull && value == null) {
              throw new IllegalArgumentException(String.format("The property [%s] may not be null!", getKey()));
          }
          if (getType() != null && value != null && !getType().isAssignableFrom(value.getClass())) {
              throw new IllegalArgumentException(
                  String.format("The value of property [%s] must be of type [%s], but was [%s]",
                      getKey(), getType(), value.getClass()));
          }
      }
docs: Check that the value is compatible with the configure constraints.
  
  @param value The value.
  @throws IllegalArgumentException if the value is null and this property has the nonNull attribute set, or if the
  type is set for this value, but the value is not assignable to the set type.