Declares an association between this object and a ChildSkill object.

@param  ChildSkill $v
@return $this|\gossi\trixionary\model\SkillPart The current object (for fluent API support)
@throws PropelException
766562
public function setSkillRelatedByCompositeId(ChildSkill $v = null)
    {
        if ($v === null) {
            $this->setCompositeId(NULL);
        } else {
            $this->setCompositeId($v->getId());
        }

        $this->aSkillRelatedByCompositeId = $v;

        // Add binding for other direction of this n:n relationship.
        // If this object has already been added to the ChildSkill object, it will not be re-added.
        if ($v !== null) {
            $v->addComposite($this);
        }


        return $this;
    }
904676
public function setSkillRelatedByDependencyId(ChildSkill $v = null)
    {
        if ($v === null) {
            $this->setDependencyId(NULL);
        } else {
            $this->setDependencyId($v->getId());
        }

        $this->aSkillRelatedByDependencyId = $v;

        // Add binding for other direction of this n:n relationship.
        // If this object has already been added to the ChildSkill object, it will not be re-added.
        if ($v !== null) {
            $v->addChild($this);
        }


        return $this;
    }
578412
public function addVariation(ChildSkill $l)
    {
        if ($this->collVariations === null) {
            $this->initVariations();
            $this->collVariationsPartial = true;
        }

        if (!$this->collVariations->contains($l)) {
            $this->doAddVariation($l);
        }

        return $this;
    }
551142
public function setStructureNodeRelatedByStructureNodeId(ChildStructureNode $v = null)
    {
        if ($v === null) {
            $this->setStructureNodeId(NULL);
        } else {
            $this->setStructureNodeId($v->getId());
        }

        $this->aStructureNodeRelatedByStructureNodeId = $v;

        // Add binding for other direction of this n:n relationship.
        // If this object has already been added to the ChildStructureNode object, it will not be re-added.
        if ($v !== null) {
            $v->addStructureNodeParentRelatedByStructureNodeId($this);
        }


        return $this;
    }
107817
public function addSkillRelatedByCompositeId(ChildSkill $skillRelatedByCompositeId)
    {
        if ($this->collSkillsRelatedByCompositeId === null) {
            $this->initSkillsRelatedByCompositeId();
        }

        if (!$this->getSkillsRelatedByCompositeId()->contains($skillRelatedByCompositeId)) {
            // only add it if the **same** object is not already associated
            $this->collSkillsRelatedByCompositeId->push($skillRelatedByCompositeId);
            $this->doAddSkillRelatedByCompositeId($skillRelatedByCompositeId);
        }

        return $this;
    }
479489
public function addFeaturedSkill(ChildSkill $l)
    {
        if ($this->collFeaturedSkills === null) {
            $this->initFeaturedSkills();
            $this->collFeaturedSkillsPartial = true;
        }

        if (!$this->collFeaturedSkills->contains($l)) {
            $this->doAddFeaturedSkill($l);
        }

        return $this;
    }
705935
public function addSkillRelatedByPartId(ChildSkill $skillRelatedByPartId)
    {
        if ($this->collSkillsRelatedByPartId === null) {
            $this->initSkillsRelatedByPartId();
        }

        if (!$this->getSkillsRelatedByPartId()->contains($skillRelatedByPartId)) {
            // only add it if the **same** object is not already associated
            $this->collSkillsRelatedByPartId->push($skillRelatedByPartId);
            $this->doAddSkillRelatedByPartId($skillRelatedByPartId);
        }

        return $this;
    }
1182754
public function setDealerProduct(ChildDealerProduct $v = null)
    {
        if ($v === null) {
            $this->setId(NULL);
        } else {
            $this->setId($v->getId());
        }

        $this->aDealerProduct = $v;

        // Add binding for other direction of this n:n relationship.
        // If this object has already been added to the ChildDealerProduct object, it will not be re-added.
        if ($v !== null) {
            $v->addDealerProductVersion($this);
        }


        return $this;
    }
282588
public function setFeatureType(ChildFeatureType $v = null)
    {
        if ($v === null) {
            $this->setFeatureTypeId(NULL);
        } else {
            $this->setFeatureTypeId($v->getId());
        }

        $this->aFeatureType = $v;

        // Add binding for other direction of this n:n relationship.
        // If this object has already been added to the ChildFeatureType object, it will not be re-added.
        if ($v !== null) {
            $v->addFeatureFeatureType($this);
        }


        return $this;
    }
347979
public function removeSkillRelatedByCompositeId(ChildSkill $skillRelatedByCompositeId)
    {
        if ($this->getSkillsRelatedByCompositeId()->contains($skillRelatedByCompositeId)) { $skillPart = new ChildSkillPart();

            $skillPart->setSkillRelatedByCompositeId($skillRelatedByCompositeId);
            if ($skillRelatedByCompositeId->isSkillRelatedByPartIdsLoaded()) {
                //remove the back reference if available
                $skillRelatedByCompositeId->getSkillRelatedByPartIds()->removeObject($this);
            }

            $skillPart->setSkillRelatedByPartId($this);
            $this->removePart(clone $skillPart);
            $skillPart->clear();

            $this->collSkillsRelatedByCompositeId->remove($this->collSkillsRelatedByCompositeId->search($skillRelatedByCompositeId));

            if (null === $this->skillsRelatedByCompositeIdScheduledForDeletion) {
                $this->skillsRelatedByCompositeIdScheduledForDeletion = clone $this->collSkillsRelatedByCompositeId;
                $this->skillsRelatedByCompositeIdScheduledForDeletion->clear();
            }

            $this->skillsRelatedByCompositeIdScheduledForDeletion->push($skillRelatedByCompositeId);
        }


        return $this;
    }
1069825
public function setProduct(ChildProduct $v = null)
    {
        if ($v === null) {
            $this->setProductId(NULL);
        } else {
            $this->setProductId($v->getId());
        }

        $this->aProduct = $v;

        // Add binding for other direction of this n:n relationship.
        // If this object has already been added to the ChildProduct object, it will not be re-added.
        if ($v !== null) {
            $v->addDealerProduct($this);
        }


        return $this;
    }
1081627
public function setGroup(ChildGroup $v = null)
    {
        // aggregate_column_relation behavior
        if (null !== $this->aGroup && $v !== $this->aGroup) {
            $this->oldGroupSkillCount = $this->aGroup;
        }
        if ($v === null) {
            $this->setGroupId(NULL);
        } else {
            $this->setGroupId($v->getId());
        }

        $this->aGroup = $v;

        // Add binding for other direction of this n:n relationship.
        // If this object has already been added to the ChildGroup object, it will not be re-added.
        if ($v !== null) {
            $v->addSkillGroup($this);
        }


        return $this;
    }
774459
public function setDealer(ChildDealer $v = null)
    {
        if ($v === null) {
            $this->setDealerId(NULL);
        } else {
            $this->setDealerId($v->getId());
        }

        $this->aDealer = $v;

        // Add binding for other direction of this n:n relationship.
        // If this object has already been added to the ChildDealer object, it will not be re-added.
        if ($v !== null) {
            $v->addDealerBrand($this);
        }


        return $this;
    }
304641
public function setSource(ChildSource $v = null)
    {
        if ($v === null) {
            $this->setSourceId(NULL);
        } else {
            $this->setSourceId($v->getId());
        }

        $this->aSource = $v;

        // Add binding for other direction of this n:n relationship.
        // If this object has already been added to the ChildSource object, it will not be re-added.
        if ($v !== null) {
            $v->addPage($this);
        }


        return $this;
    }
249578
public function setTutorialId($v)
    {
        if ($v !== null) {
            $v = (int) $v;
        }

        if ($this->tutorial_id !== $v) {
            $this->tutorial_id = $v;
            $this->modifiedColumns[SkillVersionTableMap::COL_TUTORIAL_ID] = true;
        }

        return $this;
    }
1045405
public function setPerson(ChildPerson $v = null)
    {
        if ($v === null) {
            $this->setId(NULL);
        } else {
            $this->setId($v->getId());
        }

        $this->aPerson = $v;

        // Add binding for other direction of this n:n relationship.
        // If this object has already been added to the ChildPerson object, it will not be re-added.
        if ($v !== null) {
            $v->addPersonI18n($this);
        }


        return $this;
    }
1013144
public function addSkillRelatedByEndPositionId(ChildSkill $l)
    {
        if ($this->collSkillsRelatedByEndPositionId === null) {
            $this->initSkillsRelatedByEndPositionId();
            $this->collSkillsRelatedByEndPositionIdPartial = true;
        }

        if (!$this->collSkillsRelatedByEndPositionId->contains($l)) {
            $this->doAddSkillRelatedByEndPositionId($l);
        }

        return $this;
    }