1 package org.apidesign.apifest08.currency;
6 * Creates {@link Convertor} implementations.
10 public class ConvertorFactory {
11 private ConvertorFactory()
17 * Creates {@link Convertor} that converts from sourceEquivalent.currency to destinationEquivalent.currency.
18 * Exchange rate is set as equivalents. It means if you want to create USD to CZK convertor where USD1 = CZK17
19 * call createConvertor(new MoneyImpl(1, USD), new MoneyImpl(17, CZK)). Convertor created by this method
20 * rounds the result to two decimal places.
21 * @param sourceEquivalent
22 * @param destinationEquivalent
25 public static final ExtendedConvertor createConvertor(Money sourceEquivalent, Money destinationEquivalent)
27 return mergeConvertors(
28 new DefaultConvertor(sourceEquivalent, destinationEquivalent),
29 new DefaultConvertor(destinationEquivalent ,sourceEquivalent)
34 * Merges convertors. The resulting convertor has ability to do all conversions that its underlying
35 * convertors could do. No consistency validation is done, inconsistent input will result in a convertor with
36 * inconsistent behavior.
40 public static final ExtendedConvertor mergeConvertors(ExtendedConvertor... convertors)
42 return new CompositeConvertor(convertors);