public static function isValid(&$properties_dictionary, $limit_to_keys, &$error)
 {
     //	Check each property is valid
     //
     if (!parent::isValid($properties_dictionary, $limit_to_keys, $error)) {
         return false;
     }
     if (ValidationC::should_test_property(CONFINED_DATE_START, $properties_dictionary, true, $limit_to_keys) && !ConfinedDate::propertyIsValid(CONFINED_DATE_START, $properties_dictionary[CONFINED_DATE_START], $error)) {
         //	Start date was not valid
         //
         return false;
     }
     if (ValidationC::should_test_property(CONFINED_DATE_END, $properties_dictionary, true, $limit_to_keys) && !ConfinedDate::propertyIsValid(CONFINED_DATE_END, $properties_dictionary[CONFINED_DATE_END], $error)) {
         //	End date was not valid
         //
         return false;
     }
     if (ValidationC::should_test_property(CONFINED_DATE_START, $properties_dictionary, true, $limit_to_keys) && ValidationC::should_test_property(CONFINED_DATE_END, $properties_dictionary, true, $limit_to_keys)) {
         //	Start is before end
         //
         if ($properties_dictionary[CONFINED_DATE_START] > $properties_dictionary[CONFINED_DATE_END]) {
             $error = Error::withDomain(VALIDATION_ERROR_DOMAIN, VALIDATION_ERROR_CODE_INVALID_PROPERTY, 'Start date must be before end.');
             return false;
         }
     }
     return true;
 }