/** * Returns whether the object has been modified. * * @return boolean True if the object has been modified. */ public function isModified() { return !!$this->modifiedColumns; } /** * Has specified column been modified? * * @param string $col column fully qualified name (TableMap::TYPE_COLNAME), e.g. Book::AUTHOR_ID * @return boolean True if $col has been modified. */ public function isColumnModified($col) { return $this->modifiedColumns && isset($this->modifiedColumns[$col]); } /** * Get the columns that have been modified in this object. * @return array A unique list of the modified column names for this object. */ public function getModifiedColumns() { return $this->modifiedColumns ? array_keys($this->modifiedColumns) : []; } /** * Returns whether the object has ever been saved. This will * be false, if the object was retrieved from storage or was created * and then saved. * * @return boolean true, if the object has never been persisted. */ public function isNew() { return $this->new; } /** * Setter for the isNew attribute. This method will be called * by Propel-generated children and objects. * * @param boolean $b the state of the object. */ public function setNew($b) { $this->new = (boolean) $b; } /** * Whether this object has been deleted. * @return boolean The deleted state of this object. */ public function isDeleted() { return $this->deleted; } /** * Specify whether this object has been deleted. * @param boolean $b The deleted state of this object. * @return void */ public function setDeleted($b) { $this->deleted = (boolean) $b; } /** * Sets the modified state for the object to be false. * @param string $col If supplied, only the specified column is reset. * @return void */ public function resetModified($col = null) { if (null !== $col) { unset($this->modifiedColumns[$col]); } else { $this->modifiedColumns = array(); } } /** * Compares this with another instance. If * obj is an instance of , delegates to * equals(). Otherwise, returns false. * * @param mixed $obj The object to compare to. * @return boolean Whether equal to the object specified. */ public function equals($obj) { if (!$obj instanceof static) { return false; } if ($this === $obj) { return true; } if (null === $this->getPrimaryKey() || null === $obj->getPrimaryKey()) { return false; } return $this->getPrimaryKey() === $obj->getPrimaryKey(); } /** * Get the associative array of the virtual columns in this object * * @return array */ public function getVirtualColumns() { return $this->virtualColumns; } /** * Checks the existence of a virtual column in this object * * @param string $name The virtual column name * @return boolean */ public function hasVirtualColumn($name) { return array_key_exists($name, $this->virtualColumns); } /** * Get the value of a virtual column in this object * * @param string $name The virtual column name * @return mixed * * @throws PropelException */ public function getVirtualColumn($name) { if (!$this->hasVirtualColumn($name)) { throw new PropelException(sprintf('Cannot get value of inexistent virtual column %s.', $name)); } return $this->virtualColumns[$name]; } /** * Set the value of a virtual column in this object * * @param string $name The virtual column name * @param mixed $value The value to give to the virtual column * * @return $this The current object, for fluid interface */ public function setVirtualColumn($name, $value) { $this->virtualColumns[$name] = $value; return $this; } /** * Logs a message using Propel::log(). * * @param string $msg * @param int $priority One of the Propel::LOG_* logging levels * @return void */ protected function log($msg, $priority = Propel::LOG_INFO) { Propel::log(\get_class($this) . ': ' . $msg, $priority); } /** * Export the current object properties to a string, using a given parser format * * $book = BookQuery::create()->findPk(9012); * echo $book->exportTo('JSON'); * => {"Id":9012,"Title":"Don Juan","ISBN":"0140422161","Price":12.99,"PublisherId":1234,"AuthorId":5678}'); * * * @param mixed $parser A AbstractParser instance, or a format name ('XML', 'YAML', 'JSON', 'CSV') * @param boolean $includeLazyLoadColumns (optional) Whether to include lazy load(ed) columns. Defaults to TRUE. * @param string $keyType (optional) One of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_CAMELNAME, TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM. Defaults to TableMap::TYPE_PHPNAME. * @return string The exported data */ public function exportTo($parser, $includeLazyLoadColumns = true, $keyType = TableMap::TYPE_PHPNAME) { if (!$parser instanceof AbstractParser) { $parser = AbstractParser::getParser($parser); } return $parser->fromArray($this->toArray($keyType, $includeLazyLoadColumns, array(), true)); } /** * Clean up internal collections prior to serializing * Avoids recursive loops that turn into segmentation faults when serializing */ public function __sleep() { $this->clearAllReferences(); $cls = new \ReflectionClass($this); $propertyNames = []; $serializableProperties = array_diff($cls->getProperties(), $cls->getProperties(\ReflectionProperty::IS_STATIC)); foreach($serializableProperties as $property) { $propertyNames[] = $property->getName(); } return $propertyNames; }