FixedPriceSale
Each instance of the class FixedPriceSale
represents an item that has been put
up for sale in an (imaginary) electronic auction house. Each such item is being
sold for a fixed price (as opposed to being auctioned).
Apart from a price, each sale has a duration measured in days. Every day, the method
advanceOneDay
must be called. If the set number of days is reached without anyone
buying the item, the sale expires and the item can no longer be bought.
- Value parameters:
- description
a short description of the item
- duration
the maximum number of days the sale will remain open
- price
the price the item is being sold for
Value members
Concrete methods
Records one day as having passed. In practice, what this means is that the item becomes one day closer to expiring unless it has already been bought.
Records one day as having passed. In practice, what this means is that the item becomes one day closer to expiring unless it has already been bought.
Returns the number of days remaining until the sale expires, unless someone buys the item. Initially, this number will be equal to the sale’s duration, but will decrease with each passing day until it reaches zero or the item is bought.
Returns the number of days remaining until the sale expires, unless someone buys the item. Initially, this number will be equal to the sale’s duration, but will decrease with each passing day until it reaches zero or the item is bought.
If the item has been already bought when this method is called, the number of days that were remaining at the time of purchase is returned. A return value of zero means that time has already run out to buy the item.
Determines whether the sale has expired. That is, determines whether the item
is no longer available because time has run out. Note that if the item is
unavailable because it was bought, it has not “expired” in this sense and
this method will return false
.
Determines whether the sale has expired. That is, determines whether the item
is no longer available because time has run out. Note that if the item is
unavailable because it was bought, it has not “expired” in this sense and
this method will return false
.
Inherited methods
Buys the item for the given customer. The sale now has a buyer (and is therefore no
longer open). This only works, however, if the sale was open to begin with. The method
returns true
if the item was successfully bought, false
if the purchase failed.
Buys the item for the given customer. The sale now has a buyer (and is therefore no
longer open). This only works, however, if the sale was open to begin with. The method
returns true
if the item was successfully bought, false
if the purchase failed.
- Inherited from:
- InstantPurchase
Returns the buyer of the item, wrapped in an Option
;
None
is returned if nobody has bought the item yet.
Returns the buyer of the item, wrapped in an Option
;
None
is returned if nobody has bought the item yet.
- Inherited from:
- InstantPurchase
Determines if the sale is open, that is, if the item can still be bought. An item like this is always open if nobody has yet bought it and the opportunity to buy it has not yet expired.
Determines if the sale is open, that is, if the item can still be bought. An item like this is always open if nobody has yet bought it and the opportunity to buy it has not yet expired.
- Inherited from:
- InstantPurchase
Returns a textual description of the item. This text is the same as that returned by description
.
Returns a textual description of the item. This text is the same as that returned by description
.
- Definition Classes
- ItemForSale -> Any
- Inherited from:
- ItemForSale
Concrete fields
Returns the current price of the item, that is, the price that the item is selling for at the moment. If the item is not open, the sale price (if bought) or closing price (if expired) is returned.
Returns the current price of the item, that is, the price that the item is selling for at the moment. If the item is not open, the sale price (if bought) or closing price (if expired) is returned.