# Class RelationLookup

The RelationLookup complex data type. Used to store object2object lookup tables for MANY-TO-MANY relationships between business objects

  AlphaDAO
  RelationLookup implements AlphaTypeInterface

Package: alpha::model::types
Copyright: Copyright (c) 2012, John Collins (founder of Alpha Framework). All rights reserved.

    Redistribution and use in source and binary forms, with or
    without modification, are permitted provided that the
    following conditions are met:

    * Redistributions of source code must retain the above
      copyright notice, this list of conditions and the
      following disclaimer.
    * Redistributions in binary form must reproduce the above
      copyright notice, this list of conditions and the
      following disclaimer in the documentation and/or other
      materials provided with the distribution.
    * Neither the name of the Alpha Framework nor the names
      of its contributors may be used to endorse or promote
      products derived from this software without specific
      prior written permission.

    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
    CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
    INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
    MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
    CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
    NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
    OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
    SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

License: The BSD License
Author: John Collins <dev@alphaframework.org>
Version: $Id: RelationLookup.inc 1548 2012-07-29 17:07:07Z alphadevx $
Since: 1.0
Located at model/types/RelationLookup.inc

Methods summary
`public` | # `__construct( mixed $leftClassName, mixed $rightClassName )` The constructor The constructor #### Throws ``FailedLookupCreateException`` ``IllegalArguementException`` #### Since 1.0 #### Overrides `AlphaDAO::__construct()`
`public string` | # `getLeftClassName( )` Get the leftClassName value Get the leftClassName value #### Returns `string` #### Since 1.0
`public string` | # `getRightClassName( )` Get the rightClassName value Get the rightClassName value #### Returns `string` #### Since 1.0
`public string` | # `getTableName( )` Custom getter for the TABLE_NAME, which can't be static in this class due to the lookup tablenames being different each time. Custom getter for the TABLE_NAME, which can't be static in this class due to the lookup tablenames being different each time. #### Returns `string` #### Throws ``AlphaException`` #### Since 1.0 #### Overrides `AlphaDAO::getTableName()`
`public array` | # `loadAllByAttribute( string $attribute, string $value, integer $start = 0, integer $limit = 0, string $orderBy = "OID", string $order = "ASC", boolean $ignoreClassType = false, array $constructorArgs = array() )` This custom version provides the left/right class names to the business object constructor, required for RelationLookup objects. This custom version provides the left/right class names to the business object constructor, required for RelationLookup objects. (non-PHPdoc) #### Parameters $attribute `string` $atribute The attribute to load the objects by. $value `string` $value The value of the attribute to load the objects by. $start `integer` $start The start of the SQL LIMIT clause, useful for pagination. $limit `integer` $limit The amount (limit) of objects to load, useful for pagination. $orderBy `string` $orderBy The name of the field to sort the objects by. $order `string` $order The order to sort the objects by. $ignoreClassType `boolean` $ignoreClassType Default is false, set to true if you want to load from overloaded tables and ignore the class type. $constructorArgs `array` $constructorArgs An optional array of contructor arguements to pass to the BOs that will be generated and returned. Supports a maximum of 5 arguements. #### Returns `array` An array containing objects of this type of business object. #### Throws ``BONotFoundException`` ``IllegalArguementException`` #### See alpha/model/AlphaDAO::loadAllByAttribute() #### Overrides `AlphaDAO::loadAllByAttribute()`
`public string` | # `getHelper( )` Getter for the validation helper string Getter for the validation helper string #### Returns `string` #### Since 1.0 #### Implementation of `AlphaTypeInterface::getHelper()`
`public` | # `setHelper( string $helper )` Set the validation helper text Set the validation helper text #### Parameters $helper `string` $helper #### Since 1.0 #### Implementation of `AlphaTypeInterface::setHelper()`
`public array` | # `getValue( )` Returns an array of the OIDs of the related objects Returns an array of the OIDs of the related objects #### Returns `array` #### Since 1.0 #### Implementation of `AlphaTypeInterface::getValue()`
`public` | # `setValue( array $OIDs )` Used to set the OIDs of the related objects. Pass a two-item array of OIDs, the first one being the left object OID, the second being the right. Used to set the OIDs of the related objects. Pass a two-item array of OIDs, the first one being the left object OID, the second being the right. #### Parameters $OIDs `array` $OIDs #### Throws ``IllegalArguementException`` #### Since 1.0 #### Implementation of `AlphaTypeInterface::setValue()`
`public string` | # `__toString( )` Used to convert the object to a printable string Used to convert the object to a printable string #### Returns `string` #### Since 1.0 #### Implementation of `AlphaTypeInterface::__toString()`

Methods inherited from AlphaDAO
`__wakeup(), addProperty(), addToCache(), begin(), cast(), checkBOTableExists(), checkClassDefExists(), checkRecordExists(), checkTableExists(), checkTableNeedsUpdate(), commit(), createForeignIndex(), createUniqueIndex(), delete(), deleteAllByAttribute(), disconnect(), dropTable(), findMissingFields(), get(), getBOClassNames(), getConnection(), getCount(), getCreateTS(), getCreatorId(), getDataLabel(), getDataLabels(), getDefaultAttributes(), getFriendlyClassName(), getHistoryCount(), getID(), getIndexes(), getLastQuery(), getMAX(), getMaintainHistory(), getOID(), getPersistentAttributes(), getPropObject(), getTransientAttributes(), getUniqueAttributes(), getUpdateTS(), getUpdatorId(), getVersion(), getVersionNumber(), hasAttribute(), isInstalled(), isTableOverloaded(), isTagged(), isTransient(), load(), loadAll(), loadAllByAttributes(), loadAllByDayUpdated(), loadAllFieldValuesByAttribute(), loadByAttribute(), loadClassDef(), loadFromCache(), makeHistoryTable(), makeTable(), markPersistent(), markTransient(), markUnique(), populateFromPost(), query(), rebuildTable(), reload(), removeFromCache(), rollback(), save(), saveAttribute(), saveHistory(), set(), setDataLabels(), setEnumOptions(), setLastQuery(), setMaintainHistory(), setOID(), validate()`

Properties summary
`protected `Integer`` | $leftID | `` | # The OID of the left business object in the relation The OID of the left business object in the relation #### Since 1.0
`protected `Integer`` | $rightID | `` | # The OID of the right business object in the relation The OID of the right business object in the relation #### Since 1.0
`private string` | $leftClassName | `` | # The name of the left business object class in the relation The name of the left business object class in the relation #### Since 1.0
`private string` | $rightClassName | `` | # The name of the right business object class in the relation The name of the right business object class in the relation #### Since 1.0
`private static `Logger`` | $logger | `null` | # Trace logger Trace logger #### Since 1.0
`protected array` | $dataLabels | `array("OID"=>"RelationLookup ID#","leftID"=>"Left BO ID#","rightID"=>"Right BO ID#")` | # an array of data display labels for the class properties an array of data display labels for the class properties #### Since 1.0
`protected string` | $helper | `'Not a valid RelationLookup value!'` | # The message to display to the user when validation fails The message to display to the user when validation fails #### Since 1.0

Properties inherited from AlphaDAO
`$OID, $created_by, $created_ts, $defaultAttributes, $lastQuery, $transientAttributes, $uniqueAttributes, $updated_by, $updated_ts, $version_num`