package arcade.model.payment; import arcade.exceptions.InvalidPaymentException; /** * A payment manager represents a system for taking in payment info * (e.g. credit card, PayPal, Bitcoin) * * The payment manager will take these info and perform the transaction, which * behavior is determined by implementations. For example, a * CreditCardPaymentManager would use take these info, and connect through the * network to the Visa payment system. * * * @author Ellango * */ public interface PaymentManager { /** * Takes the paymentInfo and tries to do the transaction. * * If the paymentInfo is not valid and the transaction cannot be made, then * a InvalidPaymentException is thrown. */ void doTransaction(String ... paymentInfo) throws InvalidPaymentException; }