/** * Define the joined hydration schema based on a join object. * Fills the ModelWith properties using a ModelJoin as source * * @param ModelJoin $join */ public function init(ModelJoin $join) { $tableMap = $join->getTableMap(); $this->setModelName($tableMap->getClassName()); $this->getTableMap = $tableMap; $this->isSingleTableInheritance = $tableMap->isSingleTableInheritance(); $relation = $join->getRelationMap(); $relationName = $relation->getName(); if ($relation->getType() == RelationMap::ONE_TO_MANY) { $this->isAdd = $this->isWithOneToMany = true; $this->relationName = $relation->getPluralName(); $this->relationMethod = 'add' . $relationName; $this->initMethod = 'init' . $this->relationName; $this->resetPartialMethod = 'resetPartial' . $this->relationName; } else { $this->relationName = $relationName; $this->relationMethod = 'set' . $relationName; } $this->rightPhpName = $join->hasRelationAlias() ? $join->getRelationAlias() : $relationName; if (!$join->isPrimary()) { $this->leftPhpName = $join->hasLeftTableAlias() ? $join->getLeftTableAlias() : $join->getPreviousJoin()->getRelationMap()->getName(); } }