protected enquequePostSelect ( $select, $resultMap, $property, $row, $resultObject ) |
protected function enquequePostSelect($select, $resultMap, $property, $row, $resultObject)
{
$statement = $this->getManager()->getMappedStatement($select);
$key = $this->getPostSelectKeys($resultMap, $property, $row);
$postSelect = new TPostSelectBinding();
$postSelect->setStatement($statement);
$postSelect->setResultObject($resultObject);
$postSelect->setResultProperty($property);
$postSelect->setKeys($key);
if ($property->instanceOfListType($resultObject)) {
$values = null;
if ($property->getLazyLoad()) {
$values = TLazyLoadList::newInstance($statement, $key, $resultObject, $property->getProperty());
TPropertyAccess::set($resultObject, $property->getProperty(), $values);
} else {
$postSelect->setMethod(self::QUERY_FOR_LIST);
}
} else {
if ($property->instanceOfArrayType($resultObject)) {
$postSelect->setMethod(self::QUERY_FOR_ARRAY);
} else {
$postSelect->setMethod(self::QUERY_FOR_OBJECT);
}
}
if (!$property->getLazyLoad()) {
$this->_selectQueue[] = $postSelect;
}
}