View: Hide Browser | Browser on the left | Browser on the right | Dictionary
Report:General Info | Attributes | Operations | Constraints

Parent Package: primitive
Class C_DATE_TIME


C_PRIMITIVE
   |
   +--C_DATE_TIME

ISO 8601-compatible constraint on instances of Date_Time. There is no validity flag for ‘year’, since it must always be by definition mandatory in order to have a sensible date/time at all. Syntax expressions of instances of this class include “YYYY-MM-DDT??:??:??” (date/time ith optional time) and “YYYY-MMDDTHH: MM:xx” (date/time, seconds not allowed).

Attributes
SignatureOptionalityMultiplicityConstantDocumentation
 assumed_value : Date_Time 0..1  --  The value to assume if this item is not included in data, due to being part of an optional structure. 
 day_validity : VALIDITY_KIND 0..1  --  Validity of day in constrained date. 
 hour_validity  : VALIDITY_KIND 0..1  --  Validity of hour in constrained time. 
 millisecond_validity : VALIDITY_KIND 0..1  --  Validity of millisecond in constrained time. 
 minute_validity : VALIDITY_KIND 0..1  --  Validity of minute in constrained time. 
 month_validity : VALIDITY_KIND 0..1  --  Validity of month in constrained date. 
 range : Interval<Date_Time> 0..1  --  Range of Date_times specifying constraint 
 second_validity : VALIDITY_KIND 0..1  --  Validity of second in constrained time. 
 timezone_validity : VALIDITY_KIND 0..1  --  Validity of timezone in constrained date. 


Operations
SignatureConstraintsDocumentation
 validity_is_range() : Boolean  True if validity is in the form of a range; useful for developers to check which kind of constraint has been set. 

Constraints
NameExpression
second_validity_disallowed inv: second_validity = VALIDITY_KIND.disallowed implies millisecond_validity = VALIDITY_KIND.disallowed 
second_validity_optional inv: second_validity = VALIDITY_KIND.optional implies (millisecond_validity = VALIDITY_KIND.optional or millisecond_validity = VALIDITY_KIND.disallowed) 
minute_validity_optional inv: minute_validity = VALIDITY_KIND.optional implies (second_validity = VALIDITY_KIND.optional or second_validity = VALIDITY_KIND.disallowed) 
minute_validity_disallowed inv: minute_validity = VALIDITY_KIND.disallowed implies second_validity = VALIDITY_KIND.disallowed 
hour_validity_disallowed inv: hour_validity = VALIDITY_KIND.disallowed implies minute_validity = VALIDITY_KIND.disallowed 
day_validity_disallowed inv: day_validity = VALIDITY_KIND.disallowed implies hour_validity = VALIDITY_KIND.disallowed 
month_validity_disallowed inv: month_validity = VALIDITY_KIND.disallowed implies day_validity = VALIDITY_KIND.disallowed  
day_validity_optional inv: day_validity = VALIDITY_KIND.optional implies (hour_validity = VALIDITY_KIND.optional or hour_validity =VALIDITY_KIND.disallowed)  
hour_validity_optional inv: hour_validity = VALIDITY_KIND.optional implies (minute_validity = VALIDITY_KIND.optional or minute_validity = VALIDITY_KIND.disallowed) 
validity_is_range inv: validity_is_range = (range <> Void) 
month_validity_optionalinv: month_validity = VALIDITY_KIND.optional implies (day_validity = VALIDITY_KIND.optional or day_validity = VALIDITY_KIND.disallowed)