# StorableDAO Class Reference
[Root classes for building DAO hierarchies]

Inheritance diagram for StorableDAO:
[legend]

List of all members.

## Public Member Functions

| take (Identifiable $object)
| add (Identifiable $object)
| save (Identifiable $object)
| import (Identifiable $object)
| merge (Identifiable $object, $cacheOnly=true)
| unite (Identifiable $object, Identifiable $old)

## Private Member Functions

| targetizeUpdateQuery (UpdateQuery $query, Identifiable $object)

## Detailed Description

Definition at line 15 of file StorableDAO.class.php.

## Member Function Documentation

StorableDAO::add | ( | Identifiable $ | object | ) |

Definition at line 25 of file StorableDAO.class.php.

References DBPool::getByDao(), GenericDAO::inject(), OSQL::insert(), and Identifiable::setId().

Referenced by take().

Here is the call graph for this function:

StorableDAO::import | ( | Identifiable $ | object | ) |

Definition at line 47 of file StorableDAO.class.php.

References GenericDAO::inject(), and OSQL::insert().

Here is the call graph for this function:

StorableDAO::merge | ( | Identifiable $ | object,
|  | $ | cacheOnly = `true` |
| ) |  |  |

Definition at line 56 of file StorableDAO.class.php.

References GenericDAO::checkObjectType(), Identifiable::getId(), Assert::isNotNull(), save(), unite(), and Cache::worker().

Referenced by take().

Here is the call graph for this function:

StorableDAO::save | ( | Identifiable $ | object | ) |

Definition at line 38 of file StorableDAO.class.php.

References GenericDAO::inject(), targetizeUpdateQuery(), and OSQL::update().

Referenced by merge().

Here is the call graph for this function:

StorableDAO::take | ( | Identifiable $ | object | ) |

Definition at line 17 of file StorableDAO.class.php.

References add(), Identifiable::getId(), and merge().

Here is the call graph for this function:

StorableDAO::targetizeUpdateQuery | ( | UpdateQuery $ | query,
|  | Identifiable $ | object |
| ) |  |  | `[private]`

Returns:
  UpdateQuery

Definition at line 117 of file StorableDAO.class.php.

References Expression::eqId(), GenericDAO::getIdName(), and QuerySkeleton::where().

Referenced by save(), and unite().

Here is the call graph for this function:

StorableDAO::unite | ( | Identifiable $ | object,
|  | Identifiable $ | old |
| ) |  |  |

way to skip pointless update and hack for recursive comparsion.

Definition at line 74 of file StorableDAO.class.php.

References GenericDAO::doInject(), Identifiable::getId(), GenericDAO::getProtoClass(), GenericDAO::getTable(), Assert::isNotNull(), Assert::isTypelessEqual(), targetizeUpdateQuery(), and OSQL::update().

Referenced by merge().

Here is the call graph for this function:

The documentation for this class was generated from the following file:

- main/DAOs/StorableDAO.class.php