00001 <?php 00002 00003 /* 00004 * $Id: ForeignKeyInfo.php,v 1.9 2005/08/02 14:42:36 sethr Exp $ 00005 * 00006 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 00007 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 00008 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 00009 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 00010 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 00011 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 00012 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 00013 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 00014 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 00015 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 00016 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00017 * 00018 * This software consists of voluntary contributions made by many individuals 00019 * and is licensed under the LGPL. For more information please see 00020 * <http://creole.phpdb.org>. 00021 */ 00022 00030 class ForeignKeyInfo { 00031 00032 private $name; 00033 private $references = array(); 00034 00039 protected $vendorSpecificInfo = array(); 00040 00041 00042 const NONE = ""; // No "ON [ DELETE | UPDATE]" behaviour specified. 00043 const NOACTION = "NO ACTION"; 00044 const CASCADE = "CASCADE"; 00045 const RESTRICT = "RESTRICT"; 00046 const SETDEFAULT = "SET DEFAULT"; 00047 const SETNULL = "SET NULL"; 00048 00052 function __construct($name, $vendorInfo = array()) 00053 { 00054 $this->name = $name; 00055 $this->vendorSpecificInfo = $vendorInfo; 00056 } 00057 00062 public function getName() 00063 { 00064 return $this->name; 00065 } 00066 00072 public function addReference(ColumnInfo $local, ColumnInfo $foreign, $onDelete = self::NONE, $onUpdate = self::NONE) 00073 { 00074 $this->references[] = array($local, $foreign, $onDelete, $onUpdate); 00075 } 00076 00081 public function getReferences() 00082 { 00083 return $this->references; 00084 } 00085 00090 public function getVendorSpecificInfo() 00091 { 00092 return $this->vendorSpecificInfo; 00093 } 00094 00098 public function toString() 00099 { 00100 return $this->name; 00101 } 00102 00103 }