3
* $Id: Record.php 1298 2007-05-01 19:26:03Z zYne $
5
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
6
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
7
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
8
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
9
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
10
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
11
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
12
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
13
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
14
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
15
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
17
* This software consists of voluntary contributions made by many individuals
18
* and is licensed under the LGPL. For more information, see
19
* <http://www.phpdoctrine.org>.
23
* Doctrine_Record_Filter_Compound
27
* @author Konsta Vesterinen <kvesteri@cc.hut.fi>
28
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
29
* @link www.phpdoctrine.org
31
* @version $Revision: 1298 $
33
class Doctrine_Record_Filter_Compound extends Doctrine_Record_Filter
35
protected $_aliases = array();
37
public function __construct(array $aliases)
39
$this->_aliases = $aliases;
41
public function init()
43
// check that all aliases exist
44
foreach ($this->_aliases as $alias) {
45
$this->_table->getRelation($alias);
51
* defines an implementation for filtering the set() method of Doctrine_Record
53
* @param mixed $name name of the property or related component
55
public function filterSet(Doctrine_Record $record, $name, $value)
57
foreach ($this->_aliases as $alias) {
58
if ( ! $record->exists()) {
59
if (isset($record[$alias][$name])) {
60
$record[$alias][$name] = $value;
65
if (isset($record[$alias][$name])) {
66
$record[$alias][$name] = $value;
72
throw new Doctrine_Record_UnknownPropertyException(sprintf('Unknown record property / related component "%s" on "%s"', $name, get_class($record)));
77
* defines an implementation for filtering the get() method of Doctrine_Record
79
* @param mixed $name name of the property or related component
81
public function filterGet(Doctrine_Record $record, $name)
83
foreach ($this->_aliases as $alias) {
84
if ( ! $record->exists()) {
85
if (isset($record[$alias][$name])) {
86
return $record[$alias][$name];
89
if (isset($record[$alias][$name])) {
90
return $record[$alias][$name];
94
throw new Doctrine_Record_UnknownPropertyException(sprintf('Unknown record property / related component "%s" on "%s"', $name, get_class($record)));
b'\\ No newline at end of file'