/*
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

class AccountImplementation implements Account {

  int mBalance = 0;

  private void addToBalance(int amount) {
    mBalance += amount;
  }

  public synchronized void deposit(int amount) {
    if (amount > 0) {
      addToBalance(amount);
    }
  }

  public synchronized int withdraw(int amount) {
    if (amount >= 0 && mBalance - amount >= 0) {
      addToBalance(-amount);
      return mBalance;
    } else {
      return 0;
    }
  }
}