indexing
	description: "Facility routines to check the validity of a DATE_TIME_CODE"
	status: "See note at end of class"
	date: "$Date$"
	revision: "$Revision$"

class interface
	CODE_VALIDITY_CHECKER

feature -- Preconditions

	is_code (s: STRING): BOOLEAN
			-- Is the string a code?
		require
			s_exists: s /= void

	is_colon (s: STRING): BOOLEAN
			-- Is the code a separator-colomn?
		require
			s_exists: s /= void

	is_comma (s: STRING): BOOLEAN
			-- Is the code a separator-coma?
		require
			s_exists: s /= void

	is_day (s: STRING): BOOLEAN
			-- Is the code a day-numeric?
		require
			s_exists: s /= void

	is_day0 (s: STRING): BOOLEAN
			-- Is the code a day-numeric
			-- Padded with zero?
		require
			s_exists: s /= void

	is_day_text (s: STRING): BOOLEAN
			-- Is the code a day-text?
		require
			s_exists: s /= void

	is_dot (s: STRING): BOOLEAN
			-- Is the code a separator-dot?
		require
			s_exists: s /= void

	is_fractional_second (s: STRING): BOOLEAN
			-- Is the code a fractional-second
			-- With precision to n figures?
		require
			s_exists: s /= void

	is_hour (s: STRING): BOOLEAN
			-- Is the code a 24-hour-clock-scale?
		require
			s_exists: s /= void

	is_hour0 (s: STRING): BOOLEAN
			-- Is the code a 24-hour-clock-scale
			-- Padded with zero?
		require
			s_exists: s /= void

	is_hour12 (s: STRING): BOOLEAN
			-- Is the code a 12-hour-clock-scale?
		require
			s_exists: s /= void

	is_meridiem (s: STRING): BOOLEAN
			-- Is the code a meridiem notation?
		require
			s_exists: s /= void

	is_minus (s: STRING): BOOLEAN
			-- Is the code a separator-minus?
		require
			s_exists: s /= void

	is_minute (s: STRING): BOOLEAN
			-- Is the code a minute-numeric?
		require
			s_exists: s /= void

	is_minute0 (s: STRING): BOOLEAN
			-- Is the code a minute-numeric
			-- Padded with zero?
		require
			s_exists: s /= void

	is_month (s: STRING): BOOLEAN
			-- Is the code a month-numeric?
		require
			s_exists: s /= void

	is_month0 (s: STRING): BOOLEAN
			-- Is the code a month-numeric
			-- Padded with zero?
		require
			s_exists: s /= void

	is_month_text (s: STRING): BOOLEAN
			-- Is the code a month-text?
		require
			s_exists: s /= void

	is_second (s: STRING): BOOLEAN
			-- Is the code a second-numeric?
		require
			s_exists: s /= void

	is_second0 (s: STRING): BOOLEAN
			-- Is the code a second-numeric
			-- Padded with zero?
		require
			s_exists: s /= void

	is_separator (s: STRING): BOOLEAN
			-- Is the code a seperator?
		require
			s_exists: s /= void

	is_slash (s: STRING): BOOLEAN
			-- Is the code a separator-slash?
		require
			s_exists: s /= void

	is_space (s: STRING): BOOLEAN
			-- Is the code a separator-space?
		require
			s_exists: s /= void

	is_year2 (s: STRING): BOOLEAN
			-- Is the code a year-numeric
			-- On 2 figures?
		require
			s_exists: s /= void

	is_year4 (s: STRING): BOOLEAN
			-- Is the code a year-numeric
			-- On 4 figures?
		require
			s_exists: s /= void
	
invariant

		-- from ANY
	reflexive_equality: standard_is_equal (Current)
	reflexive_conformance: conforms_to (Current)

end -- class CODE_VALIDITY_CHECKER