src/Entity/Solution.php line 35

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Entity\Traits\CitationTrait;
  4. use App\Repository\SolutionRepository;
  5. use Cofondateur\SocleTechniqueBundle\Annotation\CrudField;
  6. use Cofondateur\SocleTechniqueBundle\Traits\PublishableInterface;
  7. use Cofondateur\SocleTechniqueBundle\Traits\PublishableTrait;
  8. use Cofondateur\SocleTechniqueBundle\Traits\SEOInterface;
  9. use Cofondateur\SocleTechniqueBundle\Traits\SEOTrait;
  10. use Cofondateur\SocleTechniqueBundle\Traits\SluggableInterface;
  11. use Cofondateur\SocleTechniqueBundle\Traits\SluggableTrait;
  12. use Doctrine\Common\Collections\ArrayCollection;
  13. use Doctrine\Common\Collections\Collection;
  14. use Doctrine\ORM\Mapping as ORM;
  15. use Symfony\Component\HttpFoundation\File\File;
  16. use Vich\UploaderBundle\Mapping\Annotation as Vich;
  17. use Vich\UploaderBundle\Mapping\Annotation\Uploadable;
  18. use App\Form\SolutionObjectifFormType;
  19. use App\Form\SolutionReferenceFormType;
  20. use Cofondateur\SocleTechniqueBundle\Traits\SortableTrait;
  21. use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  22. use Symfony\Component\Validator\Constraints as Assert;
  23. /**
  24.  * @ORM\Entity(repositoryClass=SolutionRepository::class)
  25.  * @UniqueEntity(
  26.  *     fields={"slug"},
  27.  *     errorPath="slug",
  28.  *     message="Ce slug est déjà utilisé pour une autre solution"
  29.  * )
  30.  * @Uploadable()
  31.  */
  32. class Solution implements SEOInterfaceSluggableInterfacePublishableInterface
  33. {
  34.     
  35.     use SEOTrait;
  36.     use CitationTrait;
  37.     use SluggableTrait;
  38.     use SortableTrait;
  39.     use PublishableTrait;
  40.     
  41.     /**
  42.      * @ORM\Id
  43.      * @ORM\GeneratedValue
  44.      * @ORM\Column(type="integer")
  45.      */
  46.     private $id;
  47.     /**
  48.      * @ORM\Column(type="string", length=255)
  49.      * @CrudField(label="nom", index=true)
  50.      */
  51.     private $name;
  52.     /**
  53.      * @ORM\Column(type="string")
  54.      */
  55.     private $coverName;
  56.     /**
  57.      * @ORM\Column(type="integer")
  58.      */
  59.     private $coverSize;
  60.     /**
  61.      * @ORM\Column(type="datetime", nullable=true)
  62.      */
  63.     private $coverUpdatedAt;
  64.     /**
  65.      * @Vich\UploadableField(mapping="default", fileNameProperty="coverName", size="coverSize")
  66.      * @CrudField(label="Visuel principal (bandeau top)")
  67.      */
  68.     private $coverFile;
  69.     /**
  70.      * @ORM\Column(type="string", nullable=true)
  71.      * @CrudField(label="Alt")
  72.      */
  73.     private $coverAlt;
  74.     /**
  75.      * @ORM\Column(type="string", length=255)
  76.      * @CrudField(tab="Première section", label="Sur-titre")
  77.      */
  78.     private $section1SubTitle;
  79.     /**
  80.      * @ORM\Column(type="string", length=255)
  81.      * @CrudField(tab="Première section", label="Titre (mettre entre étoiles pour rendre le titre avec le surlignage Exemple : 'ceci est en bleu *ceci est surligné*')")
  82.      */
  83.     private $section1Title;
  84.     /**
  85.      * @ORM\Column(type="text")
  86.      * @CrudField(tab="Première section", label="Paragraphe", ckeditor=true)
  87.      */
  88.     private $section1Paragraphe;
  89.     /**
  90.      * @ORM\Column(type="string")
  91.      */
  92.     private $section1VisuelLeftName;
  93.     /**
  94.      * @ORM\Column(type="integer")
  95.      */
  96.     private $section1VisuelLeftSize;
  97.     /**
  98.      * @ORM\Column(type="datetime", nullable=true)
  99.      */
  100.     private $section1VisuelLeftUpdatedAt;
  101.     /**
  102.      * @Vich\UploadableField(mapping="default", fileNameProperty="section1VisuelLeftName", size="section1VisuelLeftSize")
  103.      * @CrudField(tab="Première section", label="Visuel")
  104.      */
  105.     private $section1VisuelLeftFile;
  106.     /**
  107.      * @ORM\Column(type="string", nullable=true)
  108.      * @CrudField(tab="Première section", label="Alt")
  109.      */
  110.     private $section1VisuelLeftAlt;
  111.     /**
  112.      * @ORM\Column(type="string", length=255)
  113.      * @CrudField(tab="Seconde section", label="Sur-titre")
  114.      */
  115.     private $section2SubTitle;
  116.     /**
  117.      * @ORM\Column(type="string", length=255)
  118.      * @CrudField(tab="Seconde section", label="Titre (mettre entre étoiles pour rendre le titre avec le surlignage Exemple : 'ceci est en bleu *ceci est surligné*')")
  119.      */
  120.     private $section2Title;
  121.     /**
  122.      * @ORM\Column(type="text")
  123.      * @CrudField(tab="Seconde section", label="Paragraphe", ckeditor=true)
  124.      */
  125.     private $section2Paragraphe;
  126.     /**
  127.      * @ORM\Column(type="string")
  128.      */
  129.     private $section2VisuelName;
  130.     /**
  131.      * @ORM\Column(type="integer")
  132.      */
  133.     private $section2VisuelSize;
  134.     /**
  135.      * @ORM\Column(type="datetime", nullable=true)
  136.      */
  137.     private $section2VisuelUpdatedAt;
  138.     /**
  139.      * @Vich\UploadableField(mapping="default", fileNameProperty="section2VisuelName", size="section2VisuelSize")
  140.      * @CrudField(tab="Seconde section", label="Visuel")
  141.      */
  142.     private $section2VisuelFile;
  143.     /**
  144.      * @ORM\Column(type="string", nullable=true)
  145.      * @CrudField(tab="Seconde section", label="Alt")
  146.      */
  147.     private $section2VisuelAlt;
  148.     /**
  149.      * @ORM\Column(type="string", length=255, nullable=true)
  150.      * @CrudField(label="Sur-titre", tab="Citation")
  151.      */
  152.     private $citationsubTitle;
  153.     /**
  154.      * @ORM\Column(type="string", length=255)
  155.      * @CrudField(tab="Section bleue", label="Sur-titre")
  156.      */
  157.     private $sectionBlueSubTitle;
  158.     /**
  159.      * @ORM\Column(type="string", length=255)
  160.      * @CrudField(tab="Section bleue", label="Titre (mettre entre étoiles pour rendre le titre avec le surlignage Exemple : 'ceci est en bleu *ceci est surligné*')")
  161.      */
  162.     private $sectionBlueTitle;
  163.     /**
  164.      * @ORM\Column(type="text")
  165.      * @CrudField(tab="Section bleue", label="Premier paragraphe", ckeditor=true)
  166.      */
  167.     private $sectionBlueParagraphe1;
  168.     /**
  169.      * @ORM\Column(type="text")
  170.      * @CrudField(tab="Section bleue", label="Second paragraphe", ckeditor=true)
  171.      */
  172.     private $sectionBlueParagraphe2;
  173.     /**
  174.      * @ORM\Column(type="string", length=255)
  175.      * @CrudField(tab="Quatrième Section", label="Sur-titre")
  176.      */
  177.     private $section4SubTitle;
  178.     /**
  179.      * @ORM\Column(type="string", length=255)
  180.      * @CrudField(tab="Quatrième Section", label="Titre (mettre entre étoiles pour rendre le titre avec le surlignage Exemple : 'ceci est en bleu *ceci est surligné*')")
  181.      */
  182.     private $section4Title;
  183.     /**
  184.      * @ORM\Column(type="text")
  185.      * @CrudField(tab="Quatrième Section", label="Paragraphe", ckeditor=true)
  186.      */
  187.     private $section4Paragraphe;
  188.     /**
  189.      * @ORM\Column(type="string")
  190.      */
  191.     private $Section4VisuelRightName;
  192.     /**
  193.      * @ORM\Column(type="integer")
  194.      */
  195.     private $Section4VisuelRightSize;
  196.     /**
  197.      * @ORM\Column(type="datetime", nullable=true)
  198.      */
  199.     private $Section4VisuelRightUpdatedAt;
  200.     /**
  201.      * @Vich\UploadableField(mapping="default", fileNameProperty="Section4VisuelRightName", size="Section4VisuelRightSize")
  202.      * @CrudField(tab="Quatrième Section", label="Visuel de droite")
  203.      */
  204.     private $Section4VisuelRightFile;
  205.     /**
  206.      * @ORM\Column(type="string", nullable=true)
  207.      * @CrudField(tab="Quatrième Section", label="Alt")
  208.      */
  209.     private $Section4VisuelRightAlt;
  210.     /**
  211.      * @ORM\Column(type="string", length=255, nullable=true)
  212.      * @CrudField(label="Sur-titre", tab="Actions et objectifs")
  213.      */
  214.     private $objectifSubTitle;
  215.     /**
  216.      * @ORM\Column(type="string", length=255, nullable=true)
  217.      * @CrudField(label="Titre", tab="Actions et objectifs")
  218.      */
  219.     private $objectifTitle;
  220.     /**
  221.      * @ORM\OneToMany(targetEntity=SolutionObjectif::class, mappedBy="solution", cascade={"persist", "remove"})
  222.      * @CrudField(label="Objectifs", formType=SolutionObjectifFormType::class, tab="Actions et objectifs")
  223.      */
  224.     private $solutionObjectifs;
  225.     /**
  226.      * @ORM\ManyToMany(targetEntity=ReferencePublic::class, inversedBy="solutions")
  227.      */
  228.     private $referencesPublics;
  229.     /**
  230.      * @ORM\ManyToMany(targetEntity=ReferencePrive::class, inversedBy="solutions")
  231.      */
  232.     private $referencesPrives;
  233.     /**
  234.      * @ORM\Column(type="string", length=255)
  235.      * @CrudField(tab="Contact", label="Titre")
  236.      */
  237.     private $contactTitle;
  238.     /**
  239.      * @ORM\Column(type="text")
  240.      * @CrudField(tab="Contact", label="Paragraphe")
  241.      */
  242.     private $contactParagraphe;
  243.     /**
  244.      * @ORM\OneToMany(targetEntity=SolutionReference::class, mappedBy="solution", cascade={"persist", "remove"})
  245.      * @ORM\OrderBy({"position" = "ASC"})
  246.      * @CrudField(tab="Références", label="Références", formType=SolutionReferenceFormType::class)
  247.      */
  248.     private $solutionReferences;
  249.     
  250.     
  251.     public function __construct()
  252.     {
  253.         $this->solutionObjectifs = new ArrayCollection();
  254.         $this->referencesPublics = new ArrayCollection();
  255.         $this->referencesPrives = new ArrayCollection();
  256.         $this->solutionReferences = new ArrayCollection();
  257.     }
  258.     
  259.     public function __toString(): string
  260.     {
  261.         return $this->getId() ?? "N/A";
  262.     }
  263.     public function getId(): ?int
  264.     {
  265.         return $this->id;
  266.     }
  267.     public function getCoverName(): ?string
  268.     {
  269.         return $this->coverName;
  270.     }
  271.     public function setCoverName(?string $coverName): self
  272.     {
  273.         $this->coverName $coverName;
  274.         return $this;
  275.     }
  276.     public function getCoverSize(): ?int
  277.     {
  278.         return $this->coverSize;
  279.     }
  280.     public function setCoverSize(?int $coverSize): self
  281.     {
  282.         $this->coverSize $coverSize;
  283.         return $this;
  284.     }
  285.     public function getCoverUpdatedAt(): ?\DateTimeInterface
  286.     {
  287.         return $this->coverUpdatedAt;
  288.     }
  289.     public function setCoverUpdatedAt(?\DateTimeInterface $coverUpdatedAt): self
  290.     {
  291.         $this->coverUpdatedAt $coverUpdatedAt;
  292.         return $this;
  293.     }
  294.     public function getCoverFile(): ?File
  295.     {
  296.         return $this->coverFile;
  297.     }
  298.     public function setCoverFile(?File $coverFile): self
  299.     {
  300.         $this->coverFile $coverFile;
  301.         if (null !== $this->coverFile) {
  302.             $this->coverUpdatedAt = new \DateTimeImmutable();
  303.         }
  304.         return $this;
  305.     }
  306.     public function getCoverAlt(): ?string
  307.     {
  308.         return $this->coverAlt;
  309.     }
  310.     public function setCoverAlt(?string $coverAlt): self
  311.     {
  312.         $this->coverAlt $coverAlt;
  313.         return $this;
  314.     }
  315.     public function getSection1SubTitle(): ?string
  316.     {
  317.         return $this->section1SubTitle;
  318.     }
  319.     public function setSection1SubTitle(string $section1SubTitle): self
  320.     {
  321.         $this->section1SubTitle $section1SubTitle;
  322.         return $this;
  323.     }
  324.     public function getSection1Title(): ?string
  325.     {
  326.         return $this->section1Title;
  327.     }
  328.     public function setSection1Title(string $section1Title): self
  329.     {
  330.         $this->section1Title $section1Title;
  331.         return $this;
  332.     }
  333.     public function getSection1VisuelLeftName(): ?string
  334.     {
  335.         return $this->section1VisuelLeftName;
  336.     }
  337.     public function setSection1VisuelLeftName(?string $section1VisuelLeftName): self
  338.     {
  339.         $this->section1VisuelLeftName $section1VisuelLeftName;
  340.         return $this;
  341.     }
  342.     public function getSection1VisuelLeftSize(): ?int
  343.     {
  344.         return $this->section1VisuelLeftSize;
  345.     }
  346.     public function setSection1VisuelLeftSize(?int $section1VisuelLeftSize): self
  347.     {
  348.         $this->section1VisuelLeftSize $section1VisuelLeftSize;
  349.         return $this;
  350.     }
  351.     public function getSection1VisuelLeftUpdatedAt(): ?\DateTimeInterface
  352.     {
  353.         return $this->section1VisuelLeftUpdatedAt;
  354.     }
  355.     public function setSection1VisuelLeftUpdatedAt(?\DateTimeInterface $section1VisuelLeftUpdatedAt): self
  356.     {
  357.         $this->section1VisuelLeftUpdatedAt $section1VisuelLeftUpdatedAt;
  358.         return $this;
  359.     }
  360.     public function getSection1VisuelLeftFile(): ?File
  361.     {
  362.         return $this->section1VisuelLeftFile;
  363.     }
  364.     public function setSection1VisuelLeftFile(?File $section1VisuelLeftFile): self
  365.     {
  366.         $this->section1VisuelLeftFile $section1VisuelLeftFile;
  367.         if (null !== $this->section1VisuelLeftFile) {
  368.             $this->section1VisuelLeftUpdatedAt = new \DateTimeImmutable();
  369.         }
  370.         return $this;
  371.     }
  372.     public function getSection1VisuelLeftAlt(): ?string
  373.     {
  374.         return $this->section1VisuelLeftAlt;
  375.     }
  376.     public function setSection1VisuelLeftAlt(?string $section1VisuelLeftAlt): self
  377.     {
  378.         $this->section1VisuelLeftAlt $section1VisuelLeftAlt;
  379.         return $this;
  380.     }
  381.     public function getSection1Paragraphe(): ?string
  382.     {
  383.         return $this->section1Paragraphe;
  384.     }
  385.     public function setSection1Paragraphe(string $section1Paragraphe): self
  386.     {
  387.         $this->section1Paragraphe $section1Paragraphe;
  388.         return $this;
  389.     }
  390.     public function getSection2SubTitle(): ?string
  391.     {
  392.         return $this->section2SubTitle;
  393.     }
  394.     public function setSection2SubTitle(string $section2SubTitle): self
  395.     {
  396.         $this->section2SubTitle $section2SubTitle;
  397.         return $this;
  398.     }
  399.     public function getSection2Title(): ?string
  400.     {
  401.         return $this->section2Title;
  402.     }
  403.     public function setSection2Title(string $section2Title): self
  404.     {
  405.         $this->section2Title $section2Title;
  406.         return $this;
  407.     }
  408.     public function getSection2Paragraphe(): ?string
  409.     {
  410.         return $this->section2Paragraphe;
  411.     }
  412.     public function setSection2Paragraphe(string $section2Paragraphe): self
  413.     {
  414.         $this->section2Paragraphe $section2Paragraphe;
  415.         return $this;
  416.     }
  417.     public function getSection2VisuelName(): ?string
  418.     {
  419.         return $this->section2VisuelName;
  420.     }
  421.     public function setSection2VisuelName(?string $section2VisuelName): self
  422.     {
  423.         $this->section2VisuelName $section2VisuelName;
  424.         return $this;
  425.     }
  426.     public function getSection2VisuelSize(): ?int
  427.     {
  428.         return $this->section2VisuelSize;
  429.     }
  430.     public function setSection2VisuelSize(?int $section2VisuelSize): self
  431.     {
  432.         $this->section2VisuelSize $section2VisuelSize;
  433.         return $this;
  434.     }
  435.     public function getSection2VisuelUpdatedAt(): ?\DateTimeInterface
  436.     {
  437.         return $this->section2VisuelUpdatedAt;
  438.     }
  439.     public function setSection2VisuelUpdatedAt(?\DateTimeInterface $section2VisuelUpdatedAt): self
  440.     {
  441.         $this->section2VisuelUpdatedAt $section2VisuelUpdatedAt;
  442.         return $this;
  443.     }
  444.     public function getSection2VisuelFile(): ?File
  445.     {
  446.         return $this->section2VisuelFile;
  447.     }
  448.     public function setSection2VisuelFile(?File $section2VisuelFile): self
  449.     {
  450.         $this->section2VisuelFile $section2VisuelFile;
  451.         if (null !== $this->section2VisuelFile) {
  452.             $this->section2VisuelUpdatedAt = new \DateTimeImmutable();
  453.         }
  454.         return $this;
  455.     }
  456.     public function getSection2VisuelAlt(): ?string
  457.     {
  458.         return $this->section2VisuelAlt;
  459.     }
  460.     public function setSection2VisuelAlt(?string $section2VisuelAlt): self
  461.     {
  462.         $this->section2VisuelAlt $section2VisuelAlt;
  463.         return $this;
  464.     }
  465.     public function getSectionBlueSubTitle(): ?string
  466.     {
  467.         return $this->sectionBlueSubTitle;
  468.     }
  469.     public function setSectionBlueSubTitle(string $sectionBlueSubTitle): self
  470.     {
  471.         $this->sectionBlueSubTitle $sectionBlueSubTitle;
  472.         return $this;
  473.     }
  474.     public function getSectionBlueTitle(): ?string
  475.     {
  476.         return $this->sectionBlueTitle;
  477.     }
  478.     public function setSectionBlueTitle(string $sectionBlueTitle): self
  479.     {
  480.         $this->sectionBlueTitle $sectionBlueTitle;
  481.         return $this;
  482.     }
  483.     public function getSectionBlueParagraphe1(): ?string
  484.     {
  485.         return $this->sectionBlueParagraphe1;
  486.     }
  487.     public function setSectionBlueParagraphe1(string $sectionBlueParagraphe1): self
  488.     {
  489.         $this->sectionBlueParagraphe1 $sectionBlueParagraphe1;
  490.         return $this;
  491.     }
  492.     public function getSectionBlueParagraphe2(): ?string
  493.     {
  494.         return $this->sectionBlueParagraphe2;
  495.     }
  496.     public function setSectionBlueParagraphe2(string $sectionBlueParagraphe2): self
  497.     {
  498.         $this->sectionBlueParagraphe2 $sectionBlueParagraphe2;
  499.         return $this;
  500.     }
  501.     public function getSection4SubTitle(): ?string
  502.     {
  503.         return $this->section4SubTitle;
  504.     }
  505.     public function setSection4SubTitle(string $section4SubTitle): self
  506.     {
  507.         $this->section4SubTitle $section4SubTitle;
  508.         return $this;
  509.     }
  510.     public function getSection4Title(): ?string
  511.     {
  512.         return $this->section4Title;
  513.     }
  514.     public function setSection4Title(string $section4Title): self
  515.     {
  516.         $this->section4Title $section4Title;
  517.         return $this;
  518.     }
  519.     public function getSection4Paragraphe(): ?string
  520.     {
  521.         return $this->section4Paragraphe;
  522.     }
  523.     public function setSection4Paragraphe(string $section4Paragraphe): self
  524.     {
  525.         $this->section4Paragraphe $section4Paragraphe;
  526.         return $this;
  527.     }
  528.     public function getSection4VisuelRightName(): ?string
  529.     {
  530.         return $this->Section4VisuelRightName;
  531.     }
  532.     public function setSection4VisuelRightName(?string $Section4VisuelRightName): self
  533.     {
  534.         $this->Section4VisuelRightName $Section4VisuelRightName;
  535.         return $this;
  536.     }
  537.     public function getSection4VisuelRightSize(): ?int
  538.     {
  539.         return $this->Section4VisuelRightSize;
  540.     }
  541.     public function setSection4VisuelRightSize(?int $Section4VisuelRightSize): self
  542.     {
  543.         $this->Section4VisuelRightSize $Section4VisuelRightSize;
  544.         return $this;
  545.     }
  546.     public function getSection4VisuelRightUpdatedAt(): ?\DateTimeInterface
  547.     {
  548.         return $this->Section4VisuelRightUpdatedAt;
  549.     }
  550.     public function setSection4VisuelRightUpdatedAt(?\DateTimeInterface $Section4VisuelRightUpdatedAt): self
  551.     {
  552.         $this->Section4VisuelRightUpdatedAt $Section4VisuelRightUpdatedAt;
  553.         return $this;
  554.     }
  555.     public function getSection4VisuelRightFile(): ?File
  556.     {
  557.         return $this->Section4VisuelRightFile;
  558.     }
  559.     public function setSection4VisuelRightFile(?File $Section4VisuelRightFile): self
  560.     {
  561.         $this->Section4VisuelRightFile $Section4VisuelRightFile;
  562.         if (null !== $this->Section4VisuelRightFile) {
  563.             $this->Section4VisuelRightUpdatedAt = new \DateTimeImmutable();
  564.         }
  565.         return $this;
  566.     }
  567.     public function getSection4VisuelRightAlt(): ?string
  568.     {
  569.         return $this->Section4VisuelRightAlt;
  570.     }
  571.     public function setSection4VisuelRightAlt(?string $Section4VisuelRightAlt): self
  572.     {
  573.         $this->Section4VisuelRightAlt $Section4VisuelRightAlt;
  574.         return $this;
  575.     }
  576.     /**
  577.      * @return Collection<int, SolutionObjectif>
  578.      */
  579.     public function getSolutionObjectifs(): Collection
  580.     {
  581.         return $this->solutionObjectifs;
  582.     }
  583.     public function addSolutionObjectif(SolutionObjectif $solutionObjectif): self
  584.     {
  585.         if (!$this->solutionObjectifs->contains($solutionObjectif)) {
  586.             $this->solutionObjectifs[] = $solutionObjectif;
  587.             $solutionObjectif->setSolution($this);
  588.         }
  589.         return $this;
  590.     }
  591.     public function removeSolutionObjectif(SolutionObjectif $solutionObjectif): self
  592.     {
  593.         if ($this->solutionObjectifs->removeElement($solutionObjectif)) {
  594.             // set the owning side to null (unless already changed)
  595.             if ($solutionObjectif->getSolution() === $this) {
  596.                 $solutionObjectif->setSolution(null);
  597.             }
  598.         }
  599.         return $this;
  600.     }
  601.     public function getContactTitle(): ?string
  602.     {
  603.         return $this->contactTitle;
  604.     }
  605.     public function setContactTitle(string $contactTitle): self
  606.     {
  607.         $this->contactTitle $contactTitle;
  608.         return $this;
  609.     }
  610.     public function getContactParagraphe(): ?string
  611.     {
  612.         return $this->contactParagraphe;
  613.     }
  614.     public function setContactParagraphe(string $contactParagraphe): self
  615.     {
  616.         $this->contactParagraphe $contactParagraphe;
  617.         return $this;
  618.     }
  619.     /**
  620.      * @return Collection<int, ReferencePublic>
  621.      */
  622.     public function getReferencesPublics(): Collection
  623.     {
  624.         return $this->referencesPublics;
  625.     }
  626.     public function addReferencesPublic(ReferencePublic $referencesPublic): self
  627.     {
  628.         if (!$this->referencesPublics->contains($referencesPublic)) {
  629.             $this->referencesPublics[] = $referencesPublic;
  630.         }
  631.         return $this;
  632.     }
  633.     public function removeReferencesPublic(ReferencePublic $referencesPublic): self
  634.     {
  635.         $this->referencesPublics->removeElement($referencesPublic);
  636.         return $this;
  637.     }
  638.     /**
  639.      * @return Collection<int, ReferencePrive>
  640.      */
  641.     public function getReferencesPrives(): Collection
  642.     {
  643.         return $this->referencesPrives;
  644.     }
  645.     public function addReferencesPrife(ReferencePrive $referencesPrife): self
  646.     {
  647.         if (!$this->referencesPrives->contains($referencesPrife)) {
  648.             $this->referencesPrives[] = $referencesPrife;
  649.         }
  650.         return $this;
  651.     }
  652.     public function removeReferencesPrife(ReferencePrive $referencesPrife): self
  653.     {
  654.         $this->referencesPrives->removeElement($referencesPrife);
  655.         return $this;
  656.     }
  657.     public function getname(): ?string
  658.     {
  659.         return $this->name;
  660.     }
  661.     public function setname(string $name): self
  662.     {
  663.         $this->name $name;
  664.         return $this;
  665.     }
  666.     public function getObjectifSubTitle(): ?string
  667.     {
  668.         return $this->objectifSubTitle;
  669.     }
  670.     public function setObjectifSubTitle(?string $objectifSubTitle): self
  671.     {
  672.         $this->objectifSubTitle $objectifSubTitle;
  673.         return $this;
  674.     }
  675.     public function getObjectifTitle(): ?string
  676.     {
  677.         return $this->objectifTitle;
  678.     }
  679.     public function setObjectifTitle(?string $objectifTitle): self
  680.     {
  681.         $this->objectifTitle $objectifTitle;
  682.         return $this;
  683.     }
  684.     /**
  685.      * @return Collection<int, SolutionReference>
  686.      */
  687.     public function getSolutionReferences(): Collection
  688.     {
  689.         return $this->solutionReferences;
  690.     }
  691.     public function addSolutionReference(SolutionReference $solutionReference): self
  692.     {
  693.         if (!$this->solutionReferences->contains($solutionReference)) {
  694.             $this->solutionReferences[] = $solutionReference;
  695.             $solutionReference->setSolution($this);
  696.         }
  697.         return $this;
  698.     }
  699.     public function removeSolutionReference(SolutionReference $solutionReference): self
  700.     {
  701.         if ($this->solutionReferences->removeElement($solutionReference)) {
  702.             // set the owning side to null (unless already changed)
  703.             if ($solutionReference->getSolution() === $this) {
  704.                 $solutionReference->setSolution(null);
  705.             }
  706.         }
  707.         return $this;
  708.     }
  709. }