Interface QuoteService

  • All Known Implementing Classes:
    DefaultQuoteService

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

      • getCurrentQuoteForCode

        QuoteModel getCurrentQuoteForCode​(java.lang.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:
        java.lang.IllegalArgumentException - in case code is null
        ModelNotFoundException - in case there is no latest snapshot for the given code
      • getQuoteForCodeAndVersion

        QuoteModel getQuoteForCodeAndVersion​(java.lang.String code,
                                             java.lang.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:
        java.lang.IllegalArgumentException - in case one of the parameters is null
        ModelNotFoundException - in case there is no unique quote for the given code and version
      • getQuotesForCode

        java.util.List<QuoteModel> getQuotesForCode​(java.lang.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:
        java.lang.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:
        java.lang.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:
        java.lang.IllegalArgumentException - in case one of the parameters is null