Package org.prevayler.demos.memento.commands

Source Code of org.prevayler.demos.memento.commands.Transfer

package org.prevayler.demos.memento.commands;

import org.prevayler.demos.memento.Account;
import org.prevayler.demos.memento.Bank;
import org.prevayler.util.memento.MementoCollector;
import org.prevayler.util.memento.MementoTransaction;

public class Transfer extends MementoTransaction {
  private long sourceNumber;
  private long destinationNumber;
  private long amount;

  /**
   * Set by findObjects(...)
   */
  private transient Bank bank;

  public Transfer(long sourceNumber, long destinationNumber, long amount) {
    super();

    this.sourceNumber = sourceNumber;
    this.destinationNumber = destinationNumber;
    this.amount = amount;
  }

  protected void findObjects(Bank prevalentSystem) throws Exception {
    bank = prevalentSystem;
  }

  protected void checkPrecondition() {
  }

  protected void createMementos(MementoCollector collector) {
  }

  protected Account execute(MementoCollector collector) throws Exception {
    MementoTransaction command = new Withdrawal(sourceNumber, amount);
    command.execute(collector, bank);

    command = new Deposit(destinationNumber, amount);
    command.execute(collector, bank);

    return null;
  }

}
TOP

Related Classes of org.prevayler.demos.memento.commands.Transfer

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.