/** * processDelayPayment * * @param udpMessage is an instance of DelayPaymentMessage * @throws Exception */ private void processDelayPayment(UDPMessage udpMessage) throws Exception { if (udpMessage.getMessage() instanceof DelayPaymentMessage) { DelayPaymentMessage msg = (DelayPaymentMessage) udpMessage.getMessage(); if (!this.bank.getServerName().equalsIgnoreCase(msg.getBank())) { msg.setException(new Exception("Wrong Bank Name! Request denied. processDelayPayment")); } else { boolean isDelayed = false; try { isDelayed = bank.delayPayment(msg.getLoanID(), msg.getCurrentDueDate(), msg.getNewDueDate()); } catch (Exception e) { msg.setException(e); } msg.setDelaySuccessful(isDelayed); msg.setMachineName(Env.getMachineName()); } this.send(udpMessage); } else { throw new Exception("Invalid Object processDelayPayment"); } }