@Service @Transactional class PersistentOrderManager<T extends Order> extends Object implements OrderManager<T>
Constructor and Description |
---|
PersistentOrderManager(Inventory<InventoryItem> inventory,
Accountancy<AccountancyEntry> accountancy,
BusinessTime businessTime,
OrderRepository<T> orderRepository,
org.springframework.transaction.PlatformTransactionManager txManager)
Creates a new
PersistentOrderManager using the given Inventory , Accountancy
BusinessTime , OrderRepository and PlatformTransactionManager . |
Modifier and Type | Method and Description |
---|---|
boolean |
cancelOrder(Order order)
Cancels an
Order , it can only be cancelled is OrderStatus is OPEN. |
OrderCompletionResult |
completeOrder(T order)
Tries to complete this order, the
OrderStatus has to be PAID. |
boolean |
contains(OrderIdentifier orderIdentifier)
Checks if this
OrderManager contains an order. |
Iterable<T> |
findBy(Interval interval)
|
Iterable<T> |
findBy(OrderStatus orderStatus)
|
Iterable<T> |
findBy(UserAccount userAccount)
Returns all
Order s of the given UserAccount . |
Iterable<T> |
findBy(UserAccount userAccount,
Interval interval)
Returns all
Order s from the given UserAccount in between the dates from and to ,
including from and to. |
Optional<T> |
get(OrderIdentifier orderIdentifier)
Returns the order identified by an
OrderIdentifier |
boolean |
payOrder(Order order)
|
T |
save(T order)
Saves the given
Order or persists changes to it. |
@Autowired public PersistentOrderManager(Inventory<InventoryItem> inventory, Accountancy<AccountancyEntry> accountancy, BusinessTime businessTime, OrderRepository<T> orderRepository, org.springframework.transaction.PlatformTransactionManager txManager)
PersistentOrderManager
using the given Inventory
, Accountancy
BusinessTime
, OrderRepository
and PlatformTransactionManager
.inventory
- must not be null.accountancy
- must not be null.businessTime
- must not be null.orderRepository
- must not be null.txManager
- must not be null.public T save(T order)
OrderManager
Order
or persists changes to it.save
in interface OrderManager<T extends Order>
order
- the order to be saved, must not be null.public Optional<T> get(OrderIdentifier orderIdentifier)
OrderManager
OrderIdentifier
get
in interface OrderManager<T extends Order>
orderIdentifier
- identifier of the Order
to be returned, must not be null.Optional.empty()
.public boolean contains(OrderIdentifier orderIdentifier)
OrderManager
OrderManager
contains an order.contains
in interface OrderManager<T extends Order>
orderIdentifier
- the OrderIdentifier
of the Order
, must not be null.public Iterable<T> findBy(Interval interval)
OrderManager
public Iterable<T> findBy(OrderStatus orderStatus)
OrderManager
Order
s having the OrderStatus
status
. If no orders with the specified status
exist, an empty Iterable is returned.findBy
in interface OrderManager<T extends Order>
orderStatus
- Denoting the OrderStatus
on which the Order
s will be requested.Order
s with the specified OrderStatus
public Iterable<T> findBy(UserAccount userAccount)
OrderManager
Order
s of the given UserAccount
. If this user has no orders, an empty Iterable
is returned.findBy
in interface OrderManager<T extends Order>
userAccount
- Denoting the UserAccount
on which the orders will be requested, must not be
null.Iterable
containing all orders of the specified user.public Iterable<T> findBy(UserAccount userAccount, Interval interval)
OrderManager
Order
s from the given UserAccount
in between the dates from
and to
,
including from and to. So every entry with an time stamp <= to and >= from is returned. If this user has no
Order
s in this period, an empty Iterable
is returned.findBy
in interface OrderManager<T extends Order>
userAccount
- The UserAccount
whose Order
s shall be returned, must not be null.interval
- The time interval to find Order
s in, must not be null.Iterable
containing all orders from the specified user in the specified period.public OrderCompletionResult completeOrder(T order)
OrderManager
OrderStatus
has to be PAID.completeOrder
in interface OrderManager<T extends Order>
order
- the order to complete, must not be null.OrderCompletionResult
public boolean payOrder(Order order)
OrderManager
payOrder
in interface OrderManager<T extends Order>
order
- the order to be payed, must not be null.public boolean cancelOrder(Order order)
OrderManager
Order
, it can only be cancelled is OrderStatus
is OPEN.cancelOrder
in interface OrderManager<T extends Order>
order
- the order to be canceled, must not be null.Copyright © 2016 Pivotal Software, Inc.. All rights reserved.