@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); }