public List add()

in business-model/src/main/java/com/google/cloud/orderbook/Matcher.java [126:150]


  public List<OrderBookEvent> add(Order o) {
    if (!isActive) {
      return Arrays.asList();
    }

    // Find match events
    List<OrderBookEvent> events = match(o);

    // Stop now if filled (IOC orders not used)
    if (o.getQuantityRemaining() == 0) {
      return events;
    }

    // Add order to book
    if (o.getSide() == Side.BUY) {
      bidOrderList.put(new OrderKey(o.getPrice(), o.getOrderId()), o);
    } else {
      askOrderList.put(new OrderKey(o.getPrice(), o.getOrderId()), o);
    }

    // Add new order event
    events.add(buildEvent(Type.NEW, o).build());

    return events;
  }