Interface QuoteService

All Known Implementing Classes:
DefaultQuoteService

public interface QuoteService
Business service for handling quotes.
  • Method Details

    • getCurrentQuoteForCode

      QuoteModel getCurrentQuoteForCode(String code)
      Returns the latest quote snapshot for the given code, i.e. the one with the highest version.
      Parameters:
      code - the code to query for
      Returns:
      latest quote snapshot for the given code
      Throws:
      IllegalArgumentException - in case code is null
      ModelNotFoundException - in case there is no latest snapshot for the given code
    • getQuoteForCodeAndVersion

      QuoteModel getQuoteForCodeAndVersion(String code, Integer version)
      Returns a unique QuoteModel for the given code and version.
      Parameters:
      code - the code to query for
      version - the version to query for
      Returns:
      unique quote for the given code and version
      Throws:
      IllegalArgumentException - in case one of the parameters is null
      ModelNotFoundException - in case there is no unique quote for the given code and version
    • getQuotesForCode

      List<QuoteModel> getQuotesForCode(String code)
      Returns a list of all quotes snapshots for the given code, ordered by version in descending order, i.e. the first item in the returned list is the latest snapshot of the quote.
      Parameters:
      code - the code to query for
      Returns:
      a list of ordered quote snapshots for the given code
      Throws:
      IllegalArgumentException - in case code is null
    • createQuoteFromCart

      QuoteModel createQuoteFromCart(CartModel cart)
      Creates a new quote based on the given cart. Please note that it is the caller's responsibility to persist the quote that is returned by this method. Callers may either set quote specific attributes before persisting the item or leave it to the DefaultQuotePrepareInterceptor to set default values. The cart that is passed into this method is not affected by its logic.
      Parameters:
      cart - the cart based on which the new quote will be created
      Returns:
      the new quote
      Throws:
      IllegalArgumentException - in case cart is null
    • createQuoteSnapshot

      QuoteModel createQuoteSnapshot(QuoteModel quote, QuoteState quoteState)
      Creates a new quote snapshot by cloning the given QuoteModel. The state of the new snapshot is determined by the given QuoteState, its version is the given quote's version incremented by 1. Please note that it is the caller's responsibility to persist the quote that is returned by this method. The original quote passed into this method is not affected by its logic.
      Parameters:
      quote - quote to create the snapshot from
      quoteState - desired state of the quote
      Returns:
      the new quote snapshot.
      Throws:
      IllegalArgumentException - in case one of the parameters is null