note description: "Sets of compactly coded date-time pairs" legal: "See notice at end of class." status: "See notice at end of class." date: "$Date$" revision: "$Revision$" class DATE_TIME_SET create make feature -- Initalization make (n: INTEGER) -- Create set for `n' date-time pairs. require positive: n > 0 do create date_set.make (n) create time_set.make (n) last := 0 end feature -- Access item (i: INTEGER): DATE_TIME -- Item at index `i' require index_in_range: 1 <= i and i <= last do create Result.make_by_date_time (date_set.item (i), time_set.item (i)) end last: INTEGER -- Index of the last item inserted feature -- Element change put (dt: DATE_TIME) -- insert `dt' as last item. require exists: dt /= Void do last := last + 1 date_set.put (dt.date) time_set.put (dt.time) ensure inserted_date: equal (date_set.item (last), dt.date) inserted_time: equal (time_set.item (last), dt.time) end feature {NONE} -- Implementation date_set: DATE_SET time_set: TIME_SET invariant last_non_negative: last >= 0 last1: last = date_set.last last2: last = time_set.last note copyright: "Copyright (c) 1984-2009, Eiffel Software and others" license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)" source: "[ Eiffel Software 5949 Hollister Ave., Goleta, CA 93117 USA Telephone 805-685-1006, Fax 805-685-6869 Website http://www.eiffel.com Customer support http://support.eiffel.com ]" end -- class DATE_TIME_SET