@Override
  public void convert(final PersistentQuantity quantity, final PersistentAbsUnit unit)
      throws model.NotComputableException, PersistenceException {
    PersistentAbsQuantity typeToReplace = quantity;

    final Iterator<PersistentCompoundQuantity> i = quantity.inverseGetParts().iterator();
    if (i.hasNext()) {
      typeToReplace = i.next();
    }

    final Fraction resultAmount = getThis().convertAmount(quantity, unit);
    quantity.setAmount(resultAmount);
    quantity.setUnit(unit);
    final PersistentAbsQuantity newQuantity = getThis().concludeQuantity(quantity);

    replaceInQuantityList(typeToReplace, newQuantity, false);
  }