Skip to content

Instantly share code, notes, and snippets.

@msbaek
Created December 21, 2025 03:57
Show Gist options
  • Select an option

  • Save msbaek/79daa3c01487485d0a91291531cf6f72 to your computer and use it in GitHub Desktop.

Select an option

Save msbaek/79daa3c01487485d0a91291531cf6f72 to your computer and use it in GitHub Desktop.
OrderRepositoryInMemory
static class OrderRepositoryInMemory implements OrderRepository {
private final Map<Long, Order> orders = new ConcurrentHashMap<>();
private final AtomicLong idGenerator = new AtomicLong(1);
public Order save(Order order) {
if (order.getId() == null) {
Long id = idGenerator.getAndIncrement();
Order savedOrder = new Order(id, order.getItems());
orders.put(id, savedOrder);
return savedOrder;
} else {
orders.put(order.getId(), order);
return order;
}
}
public Optional<Order> findById(Long id) {
return Optional.ofNullable(orders.get(id));
}
public void clear() {
orders.clear();
idGenerator.set(1);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment