Commit 44ec8e77 by patryk

waluty - początek

parent 9af6e0fb
package waluty;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
public class TabelaWalut {
private final String no;
private final LocalDate effectiveDate;
private final List<Waluta> rates = new ArrayList<>();
public TabelaWalut(String no, LocalDate effectiveDate) {
this.no = no;
this.effectiveDate = effectiveDate;
}
public TabelaWalut(String no, String effectiveDate) {
this(no, LocalDate.parse(effectiveDate));
}
public void addRate(Waluta waluta) {
rates.add(waluta);
}
public String getNo() {
return no;
}
public LocalDate getEffectiveDate() {
return effectiveDate;
}
public List<Waluta> getRates() {
// dostęp tylko do odczytu
return Collections.unmodifiableList(rates);
}
@Override
public String toString() {
return "Tabela nr " + no + " z dnia " + effectiveDate + ", " + rates.size() + " walut";
}
public Optional<Waluta> findByCode(String code) {
for(Waluta waluta : rates) {
if(waluta.getCode().equals(code) ) {
return Optional.of(waluta);
}
}
return Optional.empty();
}
public String[] codes() {
return rates.stream()
.map(Waluta::getCode)
.toArray(String[]::new);
}
}
package waluty;
import java.math.BigDecimal;
import java.math.RoundingMode;
public class Waluta {
private final String code;
private final String currency;
private final BigDecimal mid;
public Waluta(String code, String currency, BigDecimal mid) {
this.code = code;
this.currency = currency;
this.mid = mid;
}
public String getCode() {
return code;
}
public String getCurrency() {
return currency;
}
public BigDecimal getMid() {
return mid;
}
@Override
public String toString() {
return code + " (" + currency + "): " + mid;
}
public BigDecimal przeliczNaZlote(BigDecimal kwota) {
return kwota.multiply(mid).setScale(2, RoundingMode.HALF_EVEN);
}
public BigDecimal przeliczNaWalute(BigDecimal kwota) {
return kwota.divide(mid, 2, RoundingMode.HALF_EVEN);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment