// duynotes blog
public class HasOneDollarState implements State {
  public void insertDollar( VendingMachine vendingMachine ) {
    System.out.println( "already have one dollar" );
  }
  public void ejectMoney( VendingMachine vendingMachine ) {
    System.out.println( "returning money" );
    vendingMachine.doReturnMoney();
    vendingMachine.setState(vendingMachine.getIdleState());
  }
  public void dispense( VendingMachine vendingMachine ) {
    System.out.println( "releasing product" );
    if (vendingMachine.getCount() > 1) {
      vendingMachine.doReleaseProduct();
      vendingMachine.setState(vendingMachine.getIdleState());
    } else {
      vendingMachine.doReleaseProduct();
      vendingMachine.setState(vendingMachine.getOutOfStockState());
    }
  }
}