// Path: console/javamoney-console-java10/src/main/java/org/javamoney/examples/console/java10/util/ConsoleUtils.java
// public final class ConsoleUtils {	
// 
//     private ConsoleUtils(){}	
// 
//     public static void printDetails(CurrencyUnit cu) {	
//         if (cu == null) {	
//             System.out.println("N/A");	
//         } else {	
//             System.out.println("CurrencyUnit '" + cu.toString() + "':\n" +	
//                     "  Class                 : " + cu.getClass().getName() + "\n" +	
//                     "  Currency Code         : " + cu.getCurrencyCode() + "\n" +	
//                     "  Num.Code              : " + cu.getNumericCode() + "\n" +	
//                     "  DefaultFraction Digits: " + cu.getDefaultFractionDigits() + "\n" +	
//                     "  Context               : " + cu.getContext());	
//         }	
//     }	
// 
//     public static void printDetails(String title, CurrencyUnit cu) {	
//         if (cu == null) {	
//             System.out.println(title + " -> N/A");	
//         } else {	
//             System.out.println(title + " -> CurrencyUnit '" + cu.toString() + "':\n" +	
//                     "  Class                 : " + cu.getClass().getName() + "\n" +	
//                     "  Currency Code         : " + cu.getCurrencyCode() + "\n" +	
//                     "  Num.Code              : " + cu.getNumericCode() + "\n" +	
//                     "  DefaultFraction Digits: " + cu.getDefaultFractionDigits() + "\n" +	
//                     "  Context               : " + cu.getContext());	
//         }	
//     }	
// 
//     public static void printDetails(MonetaryAmount am) {	
//         if (am == null) {	
//             System.out.println("N/A");	
//         } else {	
//             System.out.println("Amount '" + am.toString() + "':\n" +	
//                     "  Class                 : " + am.getClass().getName() + "\n" +	
//                     "  CurrencyUnit          : " + am.getCurrency().getCurrencyCode() + "\n" +	
//                     "  Number                : " + am.getNumber() + "\n" +	
//                     "  Context               : " + am.getContext());	
//         }	
//     }	
// 
//     public static void printDetails(String title, MonetaryAmount am) {	
//         if (am == null) {	
//             System.out.println(title + " -> N/A");	
//         } else {	
//             System.out.println(title + " -> Amount '" + am.toString() + "':\n" +	
//                     "  Class                 : " + am.getClass().getName() + "\n" +	
//                     "  CurrencyUnit          : " + am.getCurrency().getCurrencyCode() + "\n" +	
//                     "  Number                : " + am.getNumber() + "\n" +	
//                     "  Context               : " + am.getContext());	
//         }	
//     }	
// }


import org.javamoney.examples.console.java10.util.ConsoleUtils;	
import org.javamoney.moneta.FastMoney;	
import org.javamoney.moneta.Money;	
import javax.money.Monetary;	
import javax.money.MonetaryAmountFactoryQueryBuilder;	

/*	
 * JavaMoney Examples	
 * Copyright 2012-2020, Werner Keil 	
 * and individual contributors by the @author tags.	
 *	
 * Licensed under the Apache License, Version 2.0 (the "License");	
 * you may not use this file except in compliance with the License.	
 * You may obtain a copy of the License at	
 * http://www.apache.org/licenses/LICENSE-2.0	
 * Unless required by applicable law or agreed to in writing, software	
 * distributed under the License is distributed on an "AS IS" BASIS,  	
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.	
 * See the License for the specific language governing permissions and	
 * limitations under the License.	
 */	
package org.javamoney.examples.console.java10.core;	




/**	
 * @author Werner Keil	
 * @version 1.0	
 */	
public class AmountsDoCalculations {	

    /**	
     * @param args	
     */	
    public static void main(String[] args) {	
        var amount = Monetary.getDefaultAmountFactory().setCurrency("EUR").setNumber(234).create();	
        ConsoleUtils.printDetails(amount);	

        amount = Monetary.getAmountFactory(FastMoney.class).setCurrency("EUR").setNumber(234).create();	
        ConsoleUtils.printDetails(amount);	

        amount = Monetary.getAmountFactory(	
                   MonetaryAmountFactoryQueryBuilder.of().setMaxScale(50).setPrecision(30).build())	
                     .setCurrency("EUR").setNumber(234).create();	
        ConsoleUtils.printDetails(amount);	

		var amt1 = Money.of(10.1234556123456789, "USD");	
		var amt2 = FastMoney.of(123456789, "USD");	

		var total = amt1.add(amt2).multiply(0.5)	
                .remainder(1);	
        ConsoleUtils.printDetails(total);	

// Path: console/javamoney-console-java10/src/main/java/org/javamoney/examples/console/java10/util/ConsoleUtils.java
// public final class ConsoleUtils {	
// 
//     private ConsoleUtils(){}	
// 
//     public static void printDetails(CurrencyUnit cu) {	
//         if (cu == null) {	
//             System.out.println("N/A");	
//         } else {	
//             System.out.println("CurrencyUnit '" + cu.toString() + "':\n" +	
//                     "  Class                 : " + cu.getClass().getName() + "\n" +	
//                     "  Currency Code         : " + cu.getCurrencyCode() + "\n" +	
//                     "  Num.Code              : " + cu.getNumericCode() + "\n" +	
//                     "  DefaultFraction Digits: " + cu.getDefaultFractionDigits() + "\n" +	
//                     "  Context               : " + cu.getContext());	
//         }	
//     }	
// 
//     public static void printDetails(String title, CurrencyUnit cu) {	
//         if (cu == null) {	
//             System.out.println(title + " -> N/A");	
//         } else {	
//             System.out.println(title + " -> CurrencyUnit '" + cu.toString() + "':\n" +	
//                     "  Class                 : " + cu.getClass().getName() + "\n" +	
//                     "  Currency Code         : " + cu.getCurrencyCode() + "\n" +	
//                     "  Num.Code              : " + cu.getNumericCode() + "\n" +	
//                     "  DefaultFraction Digits: " + cu.getDefaultFractionDigits() + "\n" +	
//                     "  Context               : " + cu.getContext());	
//         }	
//     }	
// 
//     public static void printDetails(MonetaryAmount am) {	
//         if (am == null) {	
//             System.out.println("N/A");	
//         } else {	
//             System.out.println("Amount '" + am.toString() + "':\n" +	
//                     "  Class                 : " + am.getClass().getName() + "\n" +	
//                     "  CurrencyUnit          : " + am.getCurrency().getCurrencyCode() + "\n" +	
//                     "  Number                : " + am.getNumber() + "\n" +	
//                     "  Context               : " + am.getContext());	
//         }	
//     }	
// 
//     public static void printDetails(String title, MonetaryAmount am) {	
//         if (am == null) {	
//             System.out.println(title + " -> N/A");	
//         } else {	
//             System.out.println(title + " -> Amount '" + am.toString() + "':\n" +	
//                     "  Class                 : " + am.getClass().getName() + "\n" +	
//                     "  CurrencyUnit          : " + am.getCurrency().getCurrencyCode() + "\n" +	
//                     "  Number                : " + am.getNumber() + "\n" +	
//                     "  Context               : " + am.getContext());	
//         }	
//     }	
// }


// Path: console/javamoney-console-java10/src/main/java/org/javamoney/examples/console/java10/core/AmountsDoCalculations.java
import org.javamoney.examples.console.java10.util.ConsoleUtils;	
import org.javamoney.moneta.FastMoney;	
import org.javamoney.moneta.Money;	
import javax.money.Monetary;	
import javax.money.MonetaryAmountFactoryQueryBuilder;	

/*	
 * JavaMoney Examples	
 * Copyright 2012-2020, Werner Keil 	
 * and individual contributors by the @author tags.	
 *	
 * Licensed under the Apache License, Version 2.0 (the "License");	
 * you may not use this file except in compliance with the License.	
 * You may obtain a copy of the License at	
 * http://www.apache.org/licenses/LICENSE-2.0	
 * Unless required by applicable law or agreed to in writing, software	
 * distributed under the License is distributed on an "AS IS" BASIS,  	
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.	
 * See the License for the specific language governing permissions and	
 * limitations under the License.	
 */	
package org.javamoney.examples.console.java10.core;	




/**	
 * @author Werner Keil	
 * @version 1.0	
 */	
public class AmountsDoCalculations {	

    /**	
     * @param args	
     */	
    public static void main(String[] args) {	
        var amount = Monetary.getDefaultAmountFactory().setCurrency("EUR").setNumber(234).create();	
        ConsoleUtils.printDetails(amount);	

        amount = Monetary.getAmountFactory(FastMoney.class).setCurrency("EUR").setNumber(234).create();	
        ConsoleUtils.printDetails(amount);	

        amount = Monetary.getAmountFactory(	
                   MonetaryAmountFactoryQueryBuilder.of().setMaxScale(50).setPrecision(30).build())	
                     .setCurrency("EUR").setNumber(234).create();	
        ConsoleUtils.printDetails(amount);	

		var amt1 = Money.of(10.1234556123456789, "USD");	
		var amt2 = FastMoney.of(123456789, "USD");	

		var total = amt1.add(amt2).multiply(0.5)	
                .remainder(1);	
        ConsoleUtils.printDetails(total);	

    }	
