91 lines
1.8 KiB
Plaintext
91 lines
1.8 KiB
Plaintext
note
|
|
description: "Summary description for {ITEM}."
|
|
author: ""
|
|
date: "$Date$"
|
|
revision: "$Revision$"
|
|
|
|
class
|
|
ITEM
|
|
inherit
|
|
ITEM_CONSTANTS
|
|
create
|
|
make
|
|
feature -- Initialization
|
|
make ( a_name : STRING_32 ; a_size:STRING_32; a_option: STRING_32; a_quantity:INTEGER_8)
|
|
do
|
|
set_name (a_name)
|
|
set_size (a_size)
|
|
set_option (a_option)
|
|
set_quantity (a_quantity)
|
|
end
|
|
|
|
feature -- Access
|
|
name : STRING
|
|
-- product name type of Coffee(Late, Cappuccino, Expresso)
|
|
|
|
option : STRING
|
|
-- customization option Milk (skim, semi, whole)
|
|
|
|
size : STRING
|
|
-- small, mediumm large
|
|
|
|
quantity :INTEGER
|
|
|
|
|
|
|
|
|
|
feature -- Element Change
|
|
set_name (a_name: STRING)
|
|
require
|
|
valid_name: is_valid_coffee_type (a_name)
|
|
do
|
|
name := a_name
|
|
ensure
|
|
name_assigned : name.same_string(a_name)
|
|
end
|
|
|
|
set_size (a_size: STRING)
|
|
require
|
|
valid_size : is_valid_size_option (a_size)
|
|
do
|
|
size := a_size
|
|
ensure
|
|
size_assigned : size.same_string(a_size)
|
|
end
|
|
|
|
set_option (an_option: STRING)
|
|
require
|
|
valid_option : is_valid_milk_type (an_option)
|
|
do
|
|
option := an_option
|
|
ensure
|
|
option_assigned : option.same_string (an_option)
|
|
end
|
|
|
|
set_quantity (a_quantity: INTEGER)
|
|
require
|
|
valid_quantity : a_quantity > 0
|
|
do
|
|
quantity := a_quantity
|
|
ensure
|
|
quantity_assigned : quantity = a_quantity
|
|
end
|
|
|
|
feature -- Report
|
|
hash_code: INTEGER
|
|
--Hash code value
|
|
do
|
|
Result := option.hash_code + name.hash_code + size.hash_code + quantity.hash_code
|
|
end
|
|
|
|
|
|
invariant
|
|
valid_size : is_valid_size_option (size)
|
|
valid_coffe : is_valid_coffee_type (name)
|
|
valid_customization : is_valid_milk_type (option)
|
|
valid_quantity : quantity > 0
|
|
note
|
|
copyright: "2011-2011, Javier Velilla and others"
|
|
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
|
|
end
|