Package org.scalalabs.intermediate.lab04

Source Code of org.scalalabs.intermediate.lab04.GiftVoucher

package org.scalalabs.intermediate.lab04;


import scala.Function2;
import scala.Predef$;
import scala.collection.immutable.*;
import scala.collection.immutable.List$;
import scala.runtime.AbstractFunction2;
import scala.collection.immutable.$colon$colon;

import java.util.Date;

public class PaymentServiceClient {

    public void cachePayment(String userId, int value) {
        Order order = new Order(userId, new Cache(), value);
        List<Order> orders = List$.MODULE$.apply(Predef$.MODULE$.wrapRefArray(new Order[]{
                order
        }));
        PaymentService.pay(orders);

    }

    public void cardPayment(String userId, int value, Date date) {
        Order order = new Order(userId, new PaymentCard(date, userId), value);
        List<Order> orders = List$.MODULE$.empty();
        orders = new $colon$colon(order, orders);
        PaymentService.pay(orders);
    }

    public void resetState(){
        PaymentService.reset();
    }

    public void setVerboseLogMode(boolean mode){
        PaymentService.verboseLogMode_$eq(mode);
    }

    public boolean isVerboseLogMode(){
        return PaymentService.verboseLogMode();
    }

    public List<Order> findAllOrders() {
        Function2<Order, Order, Object> sortRule = new AbstractFunction2<Order, Order, Object>() {
            public Boolean apply(Order o1, Order o2) {
                return o1.amount() > o2.amount();
            }
        };

        return PaymentService.getSortedHistory(sortRule);

    }

    public void voucherPayment(String userId, int value) {
        Order order = new Order(userId, new GiftVoucher(userId), value);
        List<Order> orders = List$.MODULE$.apply(Predef$.MODULE$.wrapRefArray(new Order[]{
                order
        }));
        PaymentService.pay(orders);
    }

}

class GiftVoucher implements Belongs,PaymentMethod {
    String holderName;

    public GiftVoucher(String holderName) {
        this.holderName = holderName;
    }

    public String holderName() {
        return holderName;
    }

    public String firstName() {
         return Belongs$class.firstName(this);
    }
}
TOP

Related Classes of org.scalalabs.intermediate.lab04.GiftVoucher

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.