indexing
description: "Parser facility for dates and times"
status: "See note at end of class"
date: "$Date$"
revision: "$Revision$"
class interface
DATE_TIME_PARSER
create
make (c: HASH_TABLE [DATE_TIME_CODE, INTEGER])
cm
db
require
code_exists: c /= void
ensure
code_set: code = c
feature
day: INTEGER
source_string
require
value_parsed: parsed
day_text: STRING
day
require
value_parsed: parsed
fine_second: DOUBLE
source_string
require
value_parsed: parsed
hour: INTEGER
source_string
require
value_parsed: parsed
minute: INTEGER
source_string
require
value_parsed: parsed
month: INTEGER
source_string
require
value_parsed: parsed
source_string: STRING
year: INTEGER
source_string
require
value_parsed: parsed
feature
is_date: BOOLEAN
source_string
require
string_parsed: parsed
is_date_time: BOOLEAN
source_string
require
string_parsed: parsed
is_set_up: BOOLEAN
is_time: BOOLEAN
source_string
require
string_parsed: parsed
is_value_valid: BOOLEAN
parsed: BOOLEAN
source_string
feature
set_base_century (c: INTEGER)
c
require
base_century_valid: c /= 0 and (c \\ 100 = 0)
ensure
base_century_set: base_century = c
set_day_array (d: ARRAY [STRING])
d
require
not_void: d /= void
ensure
days_set: days = d
set_month_array (m: ARRAY [STRING])
m
require
not_void: m /= void
ensure
months_set: months = m
set_source_string (s: STRING)
ssource_string
require
non_empty_string: s /= void and then not s.is_empty
ensure
source_set: source_string = s
not_parsed: not parsed
feature
parse
source_string
require
setup_complete: is_set_up
ensure
string_parsed: parsed
invariant
valid_value_definition: is_value_valid = (parsed and then (is_date or is_time or is_date_time))
valid_value_implies_parsing: is_value_valid implies parsed
ANY
reflexive_equality: standard_is_equal (Current)
reflexive_conformance: conforms_to (Current)
end -- DATE_TIME_PARSER