Changeset 400
- Timestamp:
- Jan 25, 2010, 2:56:50 PM (14 years ago)
- Location:
- ruby/trunk
- Files:
-
- 1 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
ruby/trunk/lib/open_ehr/am/archetype/constraint_model/primitive.rb
r399 r400 133 133 end 134 134 135 class CDate < CPrimitive135 module CDateModule 136 136 attr_accessor :range, :timezone_validity 137 137 attr_reader :month_validity, :day_validity 138 138 139 def month_validity=(month_validity) 140 if (month_validity == ValidityKind::OPTIONAL && 141 !(@day_validity == ValidityKind::OPTIONAL || 142 @day_validity == ValidityKind::DISALLOWED)) || 143 (month_validity == ValidityKind::DISALLOWED && 144 !(@day_validity == ValidityKind::DISALLOWED)) 145 raise ArgumentError, 'month validity disallowed' 146 end 147 @month_validity = month_validity 148 end 149 150 def day_validity=(day_validity) 151 @day_validity = day_validity 152 end 153 154 def validity_is_range? 155 return !@range.nil? 156 end 157 158 private 159 def consistency_validity(month_validity, day_validity) 160 end 161 end 162 163 class CDate < CPrimitive 164 include CDateModule 165 139 166 def initialize(args = { }) 140 167 super(args) 141 168 self.range = args[:range] 142 consistency_validity(args[:month_validity], args[:day_validity])143 @month_validity = args[:month_validity]144 @day_validity = args[:day_validity]145 169 self.timezone_validity = args[:timezone_validity] 146 end 147 148 def month_validity=(month_validity) 149 consistency_validity(month_validity, @day_validity) 150 @month_validity = month_validity 151 end 152 153 def day_validity=(day_validity) 154 consistency_validity(@month_validity, day_validity) 155 @day_validity = day_validity 156 end 157 158 def validity_is_range? 159 return !@range.nil? 160 end 161 162 private 163 def consistency_validity(month_validity, day_validity) 164 if (month_validity == ValidityKind::OPTIONAL) && 165 !((day_validity == ValidityKind::OPTIONAL) || 166 (day_validity == ValidityKind::DISALLOWED)) 167 raise ArgumentError, 'month_validity inconsistent' 168 end 169 if (month_validity == ValidityKind::DISALLOWED) && 170 !(day_validity == ValidityKind::DISALLOWED) 171 raise ArgumentError, 'month validity disallowed' 172 end 173 end 174 end 175 176 class CTime < CPrimitive 170 self.day_validity = args[:day_validity] 171 self.month_validity = args[:month_validity] 172 end 173 end 174 175 module CTimeModule 177 176 attr_accessor :range 178 177 attr_reader :minute_validity, :second_validity, 179 178 :millisecond_validity 180 181 def initialize(args = { })182 super183 self.range = args[:range]184 self.millisecond_validity = args[:millisecond_validity]185 self.second_validity = args[:second_validity]186 self.minute_validity = args[:minute_validity]187 end188 179 189 180 def minute_validity=(minute_validity) … … 215 206 end 216 207 end 208 209 class CTime < CPrimitive 210 include CTimeModule 211 212 def initialize(args = { }) 213 super 214 self.range = args[:range] 215 self.millisecond_validity = args[:millisecond_validity] 216 self.second_validity = args[:second_validity] 217 self.minute_validity = args[:minute_validity] 218 end 219 end 220 221 class CDateTime < CPrimitive 222 include CDateModule, CTimeModule 223 attr_reader :hour_validity 224 225 def initialize(args = { }) 226 super 227 self.timezone_validity = args[:timezone_validity] 228 self.millisecond_validity = args[:millisecond_validity] 229 self.second_validity = args[:second_validity] 230 self.minute_validity = args[:minute_validity] 231 self.hour_validity = args[:hour_vaildity] 232 self.day_validity = args[:day_validity] 233 self.month_validity = args[:day_validity] 234 end 235 236 def hour_validity=(hour_validity) 237 if (hour_validity == ValidityKind::DISALLOWED && 238 @minute_validity != ValidityKind::DISALLOWED) || 239 (hour_validity == ValidityKind::OPTIONAL && 240 !(@minute_validity == ValidityKind::OPTIONAL || 241 @minute_validity == ValidityKind::DISALLOWED)) 242 raise ArgumentError, 'hour_validity is invalid' 243 end 244 @hour_validity = hour_validity 245 end 246 247 def day_validity=(day_validity) 248 if (day_validity == ValidityKind::DISALLOWED && 249 @hour_validity != ValidityKind::DISALLOWED) || 250 (day_validity == ValidityKind::OPTIONAL && 251 !(@hour_validity == ValidityKind::OPTIONAL || 252 @hour_validity == ValidityKind::DISALLOWED)) 253 raise ArgumentError, 'day_validity is invaild' 254 end 255 @day_validity = day_validity 256 end 257 end 217 258 end # of Primitive 218 259 end # of CostraintModel -
ruby/trunk/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_time_spec.rb
r399 r400 3 3 include OpenEHR::AM::Archetype 4 4 include OpenEHR::AM::Archetype::ConstraintModel::Primitive 5 6 5 7 6 describe CTime do
Note:
See TracChangeset
for help on using the changeset viewer.