/**
	 * Populates an object of the default type or an object that inherit from the default.
	 *
	 * @param      array $row PropelPDO resultset row.
	 * @param      int $startcol The 0-based offset for reading from the resultset row.
	 * @throws     PropelException Any exceptions caught during processing will be
	 *		 rethrown wrapped into a PropelException.
	 * @return     array (ResponsableEleveAdresse object, last column rank)
	 */
	public static function populateObject($row, $startcol = 0)
	{
		$key = ResponsableEleveAdressePeer::getPrimaryKeyHashFromRow($row, $startcol);
		if (null !== ($obj = ResponsableEleveAdressePeer::getInstanceFromPool($key))) {
			// We no longer rehydrate the object, since this can cause data loss.
			// See http://www.propelorm.org/ticket/509
			// $obj->hydrate($row, $startcol, true); // rehydrate
			$col = $startcol + ResponsableEleveAdressePeer::NUM_HYDRATE_COLUMNS;
		} else {
			$cls = ResponsableEleveAdressePeer::OM_CLASS;
			$obj = new $cls();
			$col = $obj->hydrate($row, $startcol);
			ResponsableEleveAdressePeer::addInstanceToPool($obj, $key);
		}
		return array($obj, $col);
	}