Designing RMI Applications
import java.rmi.server.*; public class Account_Impl extends UnicastRemoteObject implements Account { private Money _balance; public Account_Impl(Money startingBalance) throws RemoteException { _balance = startingBalance; } public Money getBalance() throws RemoteException { return _balance; } public void makeDeposit(Money amount) throws RemoteException, NegativeAmountException { checkForNegativeAmount(amount); _balance.add(amount); return; } public void makeWithdrawal(Money amount) throws RemoteException, OverdraftException, NegativeAmountException { checkForNegativeAmount(amount); checkForOverdraft(amount); _balance.subtract(amount); return; } private void checkForNegativeAmount(Money amount) throws NegativeAmountException { int cents = amount.getCents(); if (0 > cents) { throw new NegativeAmountException(); } } private void checkForOverdraft(Money amount) throws OverdraftException { if (amount.greaterThan(_balance)) { throw new OverdraftException(false); } return; } }
UnicastRemoteObject
22 of 49