_invalid[] = $event->getField(); } function getInvalid() { return $this->_invalid; } function isValid() { return empty($this->_invalid); } } class FAInvalidRecordEvent extends FAObservableEvent { var $_field; function FAInvalidRecordEvent($field) { $this->_field = $field; } function getField() { return $this->_field; } } class FARecordRegexCriteria extends FACriteria { var $_field; var $_regex; function FARecordRegexCriteria($field, $regex) { $this->_field = $field; $this->_regex = $regex; } function validate(&$table, &$dispatcher) { if (!preg_match($this->_regex, $table->get($this->_field))) { $dispatcher->notifyAll(new FAInvalidRecordEvent($this->_field)); } } } ?>