Select Git revision
CourseGeneration.php
CourseGeneration.php 6.58 KiB
<?php
/**
*
* @tableClass CourseGenerations
* @foreignKey assetId
*
*/
class CourseGeneration extends Asset
{
/**
* Home crosslisting
*
* @var CourseCrosslisting
*/
protected $_homeCrosslisting;
public function _init()
{
parent::_init();
$this->_registerRelation(
new Nmc_Db_Table_Relation_HasSubset(CourseDetails::getInstance(), $this, 'generation'));
$this->_registerRelation(
new Nmc_Db_Table_Relation_HasMany(CourseActivities::getInstance(), $this, 'generation', 'activities'));
$this->_registerRelation(
new Nmc_Db_Table_Relation_HasMany(CourseCredits::getInstance(), $this, 'generation', 'credits'));
$this->_registerRelation(
new Nmc_Db_Table_Relation_HasMany(CourseCrosslistings::getInstance(), $this, 'generation', 'crosslistings'));
$this->_registerRelation(
new Nmc_Db_Table_Relation_HasMany(CourseDfRemovals::getInstance(), $this, 'generation', 'dfRemovals'));
$this->_registerRelation(
new Nmc_Db_Table_Relation_HasMany(CoursePrerequisites::getInstance(), $this, 'generation', 'prerequisites'));
$this->_registerRelation(
new Nmc_Db_Table_Relation_HasOne(CourseGradTieIns::getInstance(), $this, 'generation', 'gradTieIn'));
$this->_homeCrosslisting = $this->_getHomeCrosslisting();
}
public function _clone()
{
$parentId = $this->getPrimaryKey();
// duplicate parent record
parent::_clone();
$this->_homeCrosslisting = clone $this->_homeCrosslisting;
if($parentId) {
$this->parent = $parentId;
}
}
public function _get($name)
{
switch($name)
{
case 'subject':
case 'courseNumber':
case 'courseLetter':
case 'integratedStudies':
return $this->_homeCrosslisting->$name;
break;
default:
return parent::_get($name);
}
}
public function _set($name, $value)
{