code: @Nullable
      public <T> T getUnique(final URI property, final Class<T> valueClass,
              @Nullable final T defaultValue) {
          try {
              final T value = getUnique(property, valueClass);
              return value == null ? defaultValue : value;
          } catch (final IllegalStateException ex) {
              return defaultValue;
          } catch (final IllegalArgumentException ex) {
              return defaultValue;
          }
      }
docs: Returns the unique value of the property converted to an instance of a certain class, or
  the default value supplied in case of failure.
  
  @param property
  the property to read
  @param valueClass
  the class to convert the value to
  @param defaultValue
  the default value to return in case the property has no value
  @param <T>
  the type of result
  @return the unique value of the property converted to the class specified, on success; the
  default value supplied in case the property has no value, has multiple values or
  its unique value cannot be converted to the class specified