Alpha Framework alpha--model--types
[ class tree: alpha--model--types ] [ index: alpha--model--types ] [ all elements ]

Class: RelationLookup

Source Location: /model/types/RelationLookup.inc

Class RelationLookup

Class Overview

Implements interfaces:

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

Located in /model/types/RelationLookup.inc [line 50]

AlphaDAO
   |
   --RelationLookup
Author(s):
  • John Collins <dev@alphaframework.org>
Information Tags:
Version:  $Id: RelationLookup.inc 1341 2011-03-17 15:02:02Z johnc $
Copyright:  

Copyright (c) 2011, 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.

Since:  1.0
License:  The BSD License

Properties

Methods

[ Top ]
Inherited Properties, Constants, and Methods
Inherited Properties Inherited Methods Inherited Constants

Inherited From AlphaDAO

AlphaDAO::$created_by
AlphaDAO::$created_ts
AlphaDAO::$defaultAttributes
AlphaDAO::$lastQuery
AlphaDAO::$OID
AlphaDAO::$transientAttributes
AlphaDAO::$uniqueAttributes
AlphaDAO::$updated_by
AlphaDAO::$updated_ts
AlphaDAO::$version_num

Inherited From AlphaDAO

AlphaDAO::__construct()
The constructor which sets up some housekeeping attributes
AlphaDAO::addProperty()
Adds in a new class property without loosing existing data (does an ALTER TABLE query on the database).
AlphaDAO::begin()
Starts a new database transaction.
AlphaDAO::bindParams()
Dynamically binds all of the attributes for the current BO to the supplied prepared statement parameters. If arrays of attribute names and values are provided, only those will be bound to the supplied statement.
AlphaDAO::bindResult()
Dynamically binds the result of the supplied prepared statement to a 2d array, where each element in the array is another array representing a database row.
AlphaDAO::cast()
Cast a BO to another type of BO. A new BO will be returned with the same OID and version_num as the old BO, so this is NOT a true cast but is a copy. All attribute values will be copied accross.
AlphaDAO::checkBOTableExists()
Static method to check the database and see if the table for the indicated BO class name exists (assumes table name will be $BOClassName less "Object").
AlphaDAO::checkClassDefExists()
Checks if the definition for the BO class name provided exists on the file system.
AlphaDAO::checkIndexes()
Checks to see if all of the indexes are in place for the BO's table, creates those that are missing.
AlphaDAO::checkRecordExists()
Checks that a record exists for the BO in the database.
AlphaDAO::checkTableExists()
Checks to see if the table exists in the database for the current business class.
AlphaDAO::checkTableNeedsUpdate()
Checks to see if the table in the database matches (for fields) the business class definition, i.e. if the database table is in sync with the class definition.
AlphaDAO::commit()
Commits the current database transaction.
AlphaDAO::createForeignIndex()
Creates a foreign key constraint (index) in the database on the given attribute.
AlphaDAO::createUniqueIndex()
Creates a unique index in the database on the given attribute(s).
AlphaDAO::delete()
Deletes the current object from the database.
AlphaDAO::deleteAllByAttribute()
Delete all object instances from the database by the specified attribute matching the value provided.
AlphaDAO::disconnect()
Disconnects the current database connection if one exists (self::$connection is set)
AlphaDAO::dropTable()
Drops the table if the model requirements have changed. All data is lost!
AlphaDAO::findMissingFields()
Returns an array containing any properties on the class which have not been created on the database table yet.
AlphaDAO::findOffendingValue()
Parses a MySQL error for the value that violated a unique constraint.
AlphaDAO::get()
Generic getter method for accessing class properties. Will use the method get.ucfirst($prop) instead if that method exists at a child level (by default). Set $noChildMethods to true if you don't want to use any get.ucfirst($prop) method even if it exists, false otherwise (default).
AlphaDAO::getBOClassNames()
Loops over the core and custom BO directories and builds an array of all of the BO class names in the system.
AlphaDAO::getConnection()
Gets the current connection singleton, or creates a new one if none exists
AlphaDAO::getCount()
Gets the count from the database for the amount of objects of this class.
AlphaDAO::getCreateTS()
Method for getting the date/time of when the BO was created.
AlphaDAO::getCreatorId()
Method for getting the OID of the person who created this BO.
AlphaDAO::getDataLabel()
Gets the data label for the given attribute name.
AlphaDAO::getDataLabels()
Gets the data labels array.
AlphaDAO::getDefaultAttributes()
Get the array of default attribute names.
AlphaDAO::getFriendlyClassName()
Converts "BusinessObject" to "Business" and returns.
AlphaDAO::getID()
Gets the OID for the object in zero-padded format (same as getOID()). This version is designed to be overridden in case you want to do something different with the ID of your objects outside of the standard 11 digit OID sequence used internally in Alpha.
AlphaDAO::getIndexes()
Gets an array of all of the names of the active database indexes for this class.
AlphaDAO::getLastQuery()
Get the last database query run on this object.
AlphaDAO::getMAX()
Gets the maximum OID value from the database for this class type.
AlphaDAO::getOID()
Gets the OID for the object in zero-padded format (same as getID()). This version is final so cannot be overridden.
AlphaDAO::getPersistentAttributes()
Get the array of persistent attribute names, i.e. those that are saved in the database.
AlphaDAO::getPropObject()
Gets the property object rather than the value for complex attributes. Returns false if the property exists but is private.
AlphaDAO::getTableName()
Getter for the TABLE_NAME, which should be set by a child of this class.
AlphaDAO::getTransientAttributes()
Get the array of transient attribute names.
AlphaDAO::getUpdateTS()
Method for getting the date/time of when the BO was last updated.
AlphaDAO::getUpdatorId()
Method for getting the OID of the person who updated this BO.
AlphaDAO::getVersion()
Gets the version_num of the object from the database (returns 0 if the BO is not saved yet).
AlphaDAO::getVersionNumber()
Method for getting version number of the object.
AlphaDAO::hasAttribute()
Check to see if an attribute exists on the BO.
AlphaDAO::isInstalled()
Static method that tries to determine if the system database has been installed or not.
AlphaDAO::isTableOverloaded()
Checks to see if the table name matches the classname, and if not if the table name matches the classname name of another BO, i.e. the table is used to store multiple types of BOs.
AlphaDAO::isTagged()
Returns true if the BO has a Relation property called tags, false otherwise.
AlphaDAO::isTransient()
Inspector to see if the business object is transient (not presently stored in the database).
AlphaDAO::load()
Populates the child object with the properties retrived from the database for the object $OID.
AlphaDAO::loadAll()
Loads all of the objects of this class into an array which is returned.
AlphaDAO::loadAllByAttribute()
Loads all of the objects of this class by the specified attribute into an array which is returned.
AlphaDAO::loadAllByAttributes()
Loads all of the objects of this class by the specified attributes into an array which is returned.
AlphaDAO::loadAllByDayUpdated()
Loads all of the objects of this class that where updated (updated_ts value) on the date indicated.
AlphaDAO::loadAllFieldValuesByAttribute()
Loads all of the specified attribute values of this class by the specified attribute into an array which is returned.
AlphaDAO::loadByAttribute()
Populates the child object from the database table by the given attribute value.
AlphaDAO::loadClassDef()
Loads the definition from the file system for the BO class name provided.
AlphaDAO::makeTable()
Builds a new database table for the BO class.
AlphaDAO::markPersistent()
Removes the name of the attribute provided from the list of transient (non-saved) attributes for this BO, ensuring that it will be saved on the next attempt.
AlphaDAO::markTransient()
Adds the name of the attribute provided to the list of transient (non-saved) attributes for this BO.
AlphaDAO::markUnique()
Adds the name of the attribute(s) provided to the list of unique (constrained) attributes for this BO.
AlphaDAO::populateFromPost()
Populates the current business object from global POST data.
AlphaDAO::rebuildTable()
Re-builds the table if the model requirements have changed. All data is lost!
AlphaDAO::reload()
Reloads the object from the database, overwritting any attribute values in memory.
AlphaDAO::rollback()
Aborts the current database transaction.
AlphaDAO::save()
Saves the object. If $this->OID is empty or null it will INSERT, otherwise UPDATE.
AlphaDAO::saveAttribute()
Saves the field specified with the value supplied. Only works for persistent BOs. Note that no Alpha type validation is performed with this method!
AlphaDAO::set()
Generic setter method for setting class properties. Will use the method set.ucfirst($prop) instead if that method exists at a child level (by default). Set $noChildMethods to true if you don't want to use any get.ucfirst($prop) method even if it exists, false otherwise (default).
AlphaDAO::setEnumOptions()
Populate all of the enum options for this object from the database.
AlphaDAO::validate()
Validates the object to be saved.

[ Top ]
Property Summary
array   $dataLabels   an array of data display labels for the class properties
string   $helper   The message to display to the user when validation fails
Integer   $leftID   The OID of the left business object in the relation
Integer   $rightID   The OID of the right business object in the relation

[ Top ]
Method Summary
RelationLookup   __construct()   The constructor
string   getHelper()   Getter for the validation helper string
string   getLeftClassName()   Get the leftClassName value
string   getRightClassName()   Get the rightClassName value
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.
array   getValue()   Returns an array of the OIDs of the related objects
array   loadAllByAttribute()   Loads all of the objects of this class by the specified attribute into an array which is returned.
void   setHelper()   Set the validation helper text
void   setValue()   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.
string   __toString()   Used to convert the object to a printable string

[ Top ]
Properties
array   $dataLabels = array("OID"=>"RelationLookup ID#","leftID"=>"Left BO ID#","rightID"=>"Right BO ID#") [line 97]

an array of data display labels for the class properties

API Tags:
Access:  protected

Information Tags:
Since:  1.0

Redefinition of:
AlphaDAO::$dataLabels
An array of the data labels used for displaying class attributes

[ Top ]
string   $helper = 'Not a valid RelationLookup value!' [line 105]

The message to display to the user when validation fails

API Tags:
Access:  protected

Information Tags:
Since:  1.0

[ Top ]
Integer   $leftID [line 57]

The OID of the left business object in the relation

API Tags:
Access:  protected

Information Tags:
Since:  1.0

[ Top ]
Integer   $rightID [line 65]

The OID of the right business object in the relation

API Tags:
Access:  protected

Information Tags:
Since:  1.0

[ Top ]
Methods
Constructor __construct  [line 114]

  RelationLookup __construct( $leftClassName, $rightClassName  )

The constructor

Parameters:
   $leftClassName: 
   $rightClassName: 

API Tags:
Access:  public

Information Tags:
Since:  1.0
Throws:  FailedLookupCreateException
Throws:  IllegalArguementException

Redefinition of:
AlphaDAO::__construct()
The constructor which sets up some housekeeping attributes

[ Top ]
getHelper  [line 290]

  string getHelper( )

Getter for the validation helper string


API Tags:
Access:  public

Information Tags:
Since:  1.0

Implementation of:
AlphaTypeInterface::getHelper()
Get the validation helper text

[ Top ]
getLeftClassName  [line 158]

  string getLeftClassName( )

Get the leftClassName value


API Tags:
Access:  public

Information Tags:
Since:  1.0

[ Top ]
getRightClassName  [line 168]

  string getRightClassName( )

Get the rightClassName value


API Tags:
Access:  public

Information Tags:
Since:  1.0

[ Top ]
getTableName  [line 180]

  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.


API Tags:
Access:  public

Information Tags:
Since:  1.0
Throws:  AlphaException

Redefinition of:
AlphaDAO::getTableName()
Getter for the TABLE_NAME, which should be set by a child of this class.

[ Top ]
getValue  [line 310]

  array getValue( )

Returns an array of the OIDs of the related objects


API Tags:
Access:  public

Information Tags:
Since:  1.0

Implementation of:
AlphaTypeInterface::getValue()
Get the value

[ Top ]
loadAllByAttribute  [line 207]

  array loadAllByAttribute( $attribute, string $value, [integer $start = 0], [integer $limit = 0], [string $orderBy = "OID"], [string $order = "ASC"], string $atribute  )

Loads all of the objects of this class by the specified attribute into an array which is returned.

This custom version provides the left/right class names to the business object constructor, required for RelationLookup objects.

Parameters:
string   $atribute:  The attribute to load the objects by.
string   $value:  The value of the attribute to load the objects by.
integer   $start:  The start of the SQL LIMIT clause, useful for pagination.
integer   $limit:  The amount (limit) of objects to load, useful for pagination.
string   $orderBy:  The name of the field to sort the objects by.
string   $order:  The order to sort the objects by.
   $attribute: 

API Tags:
Return:  An array containing objects of this type of business object.
Access:  public

Information Tags:
Throws:  BONotFoundException
Since:  1.0
Since:  1.0

Redefinition of:
AlphaDAO::loadAllByAttribute()
Loads all of the objects of this class by the specified attribute into an array which is returned.

[ Top ]
setHelper  [line 300]

  void setHelper( string $helper  )

Set the validation helper text

Parameters:
string   $helper: 

API Tags:
Access:  public

Information Tags:
Since:  1.0

Implementation of:
AlphaTypeInterface::setHelper()
Set the validation helper text

[ Top ]
setValue  [line 322]

  void 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.

Parameters:
array   $OIDs: 

API Tags:
Access:  public

Information Tags:
Since:  1.0
Throws:  IllegalArguementException

Implementation of:
AlphaTypeInterface::setValue()
Set the value of the type

[ Top ]
__toString  [line 337]

  string __toString( )

Used to convert the object to a printable string


API Tags:
Access:  public

Information Tags:
Since:  1.0

Implementation of:
AlphaTypeInterface::__toString()
Convert the valud of the complex type to a string

[ Top ]

Documentation generated on Thu, 17 Mar 2011 16:44:43 +0000 by phpDocumentor 1.4.3