src/Entity/Journal.php line 20

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Util\ISSN;
  4. use Doctrine\Common\Collections\ArrayCollection;
  5. use Doctrine\Common\Collections\Collection;
  6. use Doctrine\ORM\Mapping as ORM;
  7. use Symfony\Component\Serializer\Annotation\Groups;
  8. use Symfony\Component\Serializer\Annotation\SerializedName;
  9. use Symfony\Component\Serializer\Annotation\MaxDepth;
  10. /**
  11.  * Class Journal
  12.  * @package App\Entity
  13.  *
  14.  * @ORM\Entity(repositoryClass="App\Repository\JournalRepository")
  15.  *
  16.  * @ORM\HasLifecycleCallbacks()
  17.  */
  18. class Journal
  19. {
  20.     const RESOURCE_KEY 'journals';
  21.     /**
  22.      * @ORM\Id()
  23.      * @ORM\GeneratedValue()
  24.      * @ORM\Column(type="integer")
  25.      * @Groups({"api"})
  26.      */
  27.     protected $id;
  28.     /**
  29.      * @ORM\ManyToMany(targetEntity="App\Entity\User", mappedBy="favoriteJournals")
  30.      * @MaxDepth(1)
  31.      * @Groups({"api"})
  32.      */
  33.     private $users;
  34.     /**
  35.      * @var string
  36.      * @ORM\Column(type="text", nullable=true)
  37.      * @Groups({"api"})
  38.      */
  39.     protected $title;
  40.     /**
  41.      * @var string
  42.      * @ORM\Column(type="text", nullable=true)
  43.      * @Groups({"api"})
  44.      * @SerializedName("category") // Custom serialization name
  45.      */
  46.     protected $categoryName;
  47.     /**
  48.      * @var string
  49.      * @ORM\Column(type="text", nullable=true)
  50.      * @Groups({"api"})
  51.      */
  52.     protected $area;
  53.     /**
  54.      * @var Category[]
  55.      * @ORM\ManyToMany(targetEntity="Category", inversedBy="journals", cascade={"persist"})
  56.      * @Groups({"api"})
  57.      */
  58.     private $categories;
  59.         /**
  60.      * @ORM\Column(type="text", nullable=true, name="guide")
  61.      */
  62.     protected $guide;
  63.     /**
  64.      * @ORM\Column(type="string", nullable=true)
  65.      */
  66.     protected $publisher;
  67.     /**
  68.      * @var string
  69.      * @ORM\Column(type="text", nullable=true)
  70.      * @Groups({"api"})
  71.      */
  72.     protected $quartile;
  73.      /**
  74.      * @ORM\Column(type="boolean", nullable=true, options={"default":"0"})
  75.      */
  76.     protected $isOpenAccess;
  77.   /**
  78.      * @var string
  79.      * @ORM\Column(type="string", nullable=true)
  80.      * @Groups({"api"})
  81.      */
  82.     protected $printISSN;
  83.     /**
  84.      * @ORM\Column(type="string", nullable=true)
  85.      */
  86.     protected $originalPrintISSN;
  87.     /**
  88.      * @ORM\Column(type="string", nullable=true)
  89.      */
  90.     protected $originalEISSN;
  91.     /**
  92.      * @ORM\Column(type="string", nullable=true)
  93.      */
  94.     protected $eissn;
  95.     /**
  96.      * @ORM\ManyToOne(targetEntity="App\Entity\User")
  97.      * @Groups({"api"})
  98.      * @ORM\JoinColumn(name="user_id", referencedColumnName="id")
  99.      */
  100.    // private $user;
  101.    /**
  102.      * @return ArrayCollection|Collection
  103.      */
  104.     public function getUsers()
  105.     {
  106.         return $this->users;
  107.     }
  108.     /**
  109.      * @return mixed
  110.      */
  111.     /*public function getUser()
  112.     {
  113.         return $this->user;
  114.     }*/
  115.     /**
  116.      * @param mixed $user
  117.      */
  118.    /* public function setUser($user): void
  119.     {
  120.         $this->user = $user;
  121.     */
  122.     /**
  123.      * @ORM\Column(type="integer", nullable=true)
  124.      */
  125.     protected $citationCount;
  126.     /**
  127.      * @ORM\Column(type="string", nullable=true)
  128.      */
  129.     protected $country;
  130.     /**
  131.      * @ORM\Column(type="string", nullable=true)
  132.      */
  133.     protected $region;
  134.     /**
  135.      * @ORM\Column(type="string", nullable=true)
  136.      */
  137.     protected $hindex;
  138.    /**
  139.      * @ORM\ManyToOne(targetEntity="App\Entity\User")
  140.      * @ORM\JoinColumn(name="contributor_id", referencedColumnName="id")
  141.      * @MaxDepth(1)
  142.      * @Groups({"api"})
  143.      */
  144.     protected $contributor;
  145.     /**
  146.      * @ORM\Column(type="datetime" , nullable=true)
  147.      */
  148.     private $updatedAt;
  149. /**
  150.      * @ORM\OneToMany(targetEntity=Comment::class, mappedBy="journal", orphanRemoval=true)
  151.      * @Groups({"api"})
  152.      */
  153.     private $comments;
  154.     /**
  155.      * @ORM\Column(type="text", nullable=true)
  156.      */
  157.      private $scope;
  158.     /**
  159.      * @ORM\Column(type="string", length=600, nullable=true)
  160.      */
  161.     private $email;
  162.     /**
  163.      * @ORM\Column(type="text", nullable=true)
  164.      */
  165.     private $homePage;
  166.     // DOAJ DATA
  167.     /**
  168.      * @ORM\Column(type="datetime" , nullable=true)
  169.      */
  170.     private $start_date_open_licence;
  171.     /**
  172.      * @ORM\Column(type="string", length=600, nullable=true)
  173.      */
  174.     private $langue_manuscript;
  175.     /**
  176.      * @ORM\Column(type="string", length=600, nullable=true)
  177.      */
  178.     private $country_publisher;
  179.     /**
  180.      * @ORM\Column(type="string", length=1000, nullable=true)
  181.      */
  182.     private $licence;
  183.     /**
  184.      * @ORM\Column(type="string", length=1000, nullable=true)
  185.      */
  186.     private $review_url;
  187.     /**
  188.      * @ORM\Column(type="string", length=1000, nullable=true)
  189.      */
  190.     private $aim_scoop_url;
  191.     /**
  192.      * @ORM\Column(type="integer", nullable=true)
  193.      */
  194.     private $weeks_between_submission_publication;
  195.     /**
  196.      * @ORM\Column(type="datetime", nullable=true)
  197.      */
  198.     private $added_in_doaj_at;
  199.     /**
  200.      * @ORM\Column(type="datetime", nullable=true)
  201.      */
  202.     private $last_updated_in_doaj_at;
  203.     /**
  204.      * @ORM\Column(type="datetime", nullable=true)
  205.      */
  206.     private $recent_article_added_at;
  207.     // DOAJ DATA
  208.     /**
  209.      * @ORM\Column(type="text", nullable=true)
  210.      */
  211.     private $howToPublish;
  212.     /**
  213.      * @ORM\OneToMany(targetEntity=Contribution::class, mappedBy="journal", orphanRemoval=true)
  214.      */
  215.     private $contributions;
  216.     /**
  217.      * @ORM\OneToMany(targetEntity=Report::class, mappedBy="journal")
  218.      */
  219.     private $reports;
  220.     /**
  221.      * @ORM\Column(type="string", length=255, nullable=true)
  222.      */
  223.     private $sjr;
  224.     /**
  225.      * @ORM\Column(type="string", length=255, nullable=true)
  226.      */
  227.     private $total_doc_last_year;
  228.     /**
  229.      * @ORM\Column(type="string", length=255, nullable=true)
  230.      */
  231.     private $total_docs_3_years;
  232.     /**
  233.      * @ORM\Column(type="string", length=255, nullable=true)
  234.      */
  235.     private $total_refs;
  236.     /**
  237.      * @ORM\Column(type="string", length=255, nullable=true)
  238.      */
  239.     private $total_cites_3_years;
  240.     /**
  241.      * @ORM\Column(type="string", length=255, nullable=true)
  242.      */
  243.     private $citable_docs_3_years;
  244.     /**
  245.      * @ORM\Column(type="string", length=255, nullable=true)
  246.      */
  247.     private $cites_docs_2_years;
  248.     /**
  249.      * @ORM\Column(type="string", length=255, nullable=true)
  250.      */
  251.     private $ref_per_doc;
  252.     /**
  253.      * @ORM\Column(type="string", length=255, nullable=true)
  254.      */
  255.     private $female;
  256.     /**
  257.      * @ORM\Column(type="string", length=255, nullable=true)
  258.      */
  259.     private $overton;
  260.     /**
  261.      * @ORM\Column(type="string", length=255, nullable=true)
  262.      */
  263.     private $sdg;
  264.     /**
  265.      * @ORM\Column(type="text", nullable=true)
  266.      */
  267.     private $coverage;
  268.     public function __construct()
  269.     {
  270.         $this->categories = new ArrayCollection();
  271.         $this->comments = new ArrayCollection();
  272.         $this->contributions = new ArrayCollection();
  273.         $this->users = new ArrayCollection();
  274.         $this->reports = new ArrayCollection();
  275.     }
  276.     /**
  277.      * @return User|null
  278.      * @Groups({"api"})
  279.      */
  280.     public function getContributor(): ?User
  281.     {
  282.         return $this->contributor;
  283.     }
  284.     /**
  285.      * @param User $contributor
  286.      */
  287.     public function setContributor(User $contributor): void
  288.     {
  289.         $this->contributor $contributor;
  290.     }
  291.     /**
  292.      * @return mixed
  293.      * @Groups({"api"})
  294.      */
  295.     public function getId()
  296.     {
  297.         return $this->id;
  298.     }
  299.      /**
  300.      * @return mixed
  301.      * @Groups({"api"})
  302.      */
  303.     public function getUpdatedAt()
  304.     {
  305.         return $this->updatedAt;
  306.     }
  307.     /**
  308.      * @param mixed $updatedAt
  309.      */
  310.     public function setUpdatedAt($updatedAt): void
  311.     {
  312.         $this->updatedAt $updatedAt;
  313.     }
  314.     /**
  315.      * @return mixed
  316.      */
  317.     public function getTitle()
  318.     {
  319.         return $this->title;
  320.     }
  321.     /**
  322.      * @param mixed $title
  323.      */
  324.     public function setTitle($title)
  325.     {
  326.         $this->title $title;
  327.     }
  328.     /**
  329.      * @return mixed
  330.      */
  331.     public function getPublisher()
  332.     {
  333.         return $this->publisher;
  334.     }
  335.     /**
  336.      * @param mixed $publisher
  337.      */
  338.     public function setPublisher($publisher): void
  339.     {
  340.         $this->publisher $publisher;
  341.     }
  342.     /**
  343.      * @return mixed
  344.      */
  345.     public function getEissn()
  346.     {
  347.         return $this->eissn;
  348.     }
  349.     /**
  350.      * @param mixed $eissn
  351.      */
  352.     public function setEissn($eissn): void
  353.     {
  354.         $this->eissn $eissn;
  355.     }
  356.      /**
  357.      * @return Collection<Category>
  358.      * @Groups({"api"})
  359.      */
  360.     public function getCategories(): Collection
  361.     {
  362.         return $this->categories;
  363.     }
  364.     public function addCategory(Category $c): self
  365.     {
  366.         if (!$this->categories->contains($c)) {
  367.             $this->categories[] = $c;
  368.             $c->addJournal($this);
  369.         }
  370.         return $this;
  371.     }
  372.     public function removeCategory(Category $c): self
  373.     {
  374.         if ($this->categories->contains($c)) {
  375.             $this->categories->removeElement($c);
  376.             if ($c->getJournals()->contains($this)) {
  377.                 $c->addJournal(null);
  378.             }
  379.         }
  380.         return $this;
  381.     }
  382.    /**
  383.      * @return string
  384.      * @Groups({"api"})
  385.      */
  386.     public function getCategoryName(): ?string
  387.     {
  388.         return $this->categoryName;
  389.     }
  390.     /**
  391.      * @param string $categoryName
  392.      * @return Journal
  393.      */
  394.     public function setCategoryName(string $categoryName): Journal
  395.     {
  396.         $this->categoryName $categoryName;
  397.         return $this;
  398.     }
  399.     /**
  400.      * @return string|null
  401.      */
  402.     public function getQuartile(): ?string
  403.     {
  404.         return $this->quartile;
  405.     }
  406.     /**
  407.      * @param mixed $quartile
  408.      * @return Journal
  409.      */
  410.     public function setQuartile($quartile)
  411.     {
  412.         $this->quartile $quartile;
  413.         return $this;
  414.     }
  415.     /**
  416.      * @return mixed
  417.      */
  418.     public function getIsOpenAccess()
  419.     {
  420.         return $this->isOpenAccess;
  421.     }
  422.     /**
  423.      * @param mixed $isOpenAccess
  424.      * @return Journal
  425.      */
  426.     public function setIsOpenAccess($isOpenAccess)
  427.     {
  428.         $this->isOpenAccess $isOpenAccess;
  429.         return $this;
  430.     }
  431.     /**
  432.      * @return string|null
  433.      */
  434.     public function getPrintISSN(): ?string
  435.     {
  436.         return $this->printISSN;
  437.     }
  438.     /**
  439.      * @param mixed $printISSN
  440.      * @return Journal
  441.      */
  442.     public function setPrintISSN($printISSN)
  443.     {
  444.         $this->printISSN $printISSN;
  445.         return $this;
  446.     }
  447.     /**
  448.      * @return mixed
  449.      */
  450.     public function getCitationCount()
  451.     {
  452.         return $this->citationCount;
  453.     }
  454.     /**
  455.      * @param mixed $citationCount
  456.      * @return Journal
  457.      */
  458.     public function setCitationCount($citationCount)
  459.     {
  460.         if (is_string($citationCount)) {
  461.             $citationCount = (int)str_replace(','''$citationCount);
  462.         }
  463.         $this->citationCount $citationCount;
  464.         return $this;
  465.     }
  466.     /**
  467.      * @return mixed
  468.      */
  469.     public function getOriginalPrintISSN()
  470.     {
  471.         return $this->originalPrintISSN;
  472.     }
  473.     /**
  474.      * @param mixed $originalPrintISSN
  475.      * @return Journal
  476.      */
  477.     public function setOriginalPrintISSN($originalPrintISSN)
  478.     {
  479.         $this->originalPrintISSN $originalPrintISSN;
  480.         return $this;
  481.     }
  482.     /**
  483.      * @return mixed
  484.      */
  485.     public function getOriginalEISSN()
  486.     {
  487.         return $this->originalEISSN;
  488.     }
  489.     /**
  490.      * @param mixed $originalEISSN
  491.      * @return Journal
  492.      */
  493.     public function setOriginalEISSN($originalEISSN)
  494.     {
  495.         $this->originalEISSN $originalEISSN;
  496.         return $this;
  497.     }
  498.     /**
  499.      * @ORM\PrePersist()
  500.      */
  501.     public function setISSNValue()
  502.     {
  503.         if (!empty(ISSN::format($this->originalPrintISSN))) {
  504.             $this->setPrintISSN(ISSN::format($this->originalPrintISSN));
  505.         }
  506.         elseif (!empty(ISSN::format($this->originalEISSN))){
  507.             $this->setPrintISSN(ISSN::format($this->originalEISSN));
  508.         }
  509.     }
  510.     /**
  511.      * @ORM\PrePersist()
  512.      */
  513.     public function setEISSNValue()
  514.     {
  515.         if (!empty(ISSN::format($this->originalEISSN))) {
  516.             $this->setEissn(ISSN::format($this->originalEISSN));
  517.         }
  518.         elseif (!empty(ISSN::format($this->originalPrintISSN))) {
  519.             $this->setEissn(ISSN::format($this->originalPrintISSN));
  520.         }
  521.     }
  522.     /**
  523.      * @return mixed
  524.      */
  525.     public function getCountry()
  526.     {
  527.         return $this->country;
  528.     }
  529.     /**
  530.      * @param mixed $country
  531.      */
  532.     public function setCountry($country): void
  533.     {
  534.         $this->country $country;
  535.     }
  536.     /**
  537.      * @return mixed
  538.      */
  539.     public function getRegion()
  540.     {
  541.         return $this->region;
  542.     }
  543.     /**
  544.      * @param mixed $region
  545.      */
  546.     public function setRegion($region): void
  547.     {
  548.         $this->region $region;
  549.     }
  550.     /**
  551.      * @return string
  552.      */
  553.     public function getArea(): ?string
  554.     {
  555.         return $this->area;
  556.     }
  557.     /**
  558.      * @param string $area
  559.      */
  560.     public function setArea(?string $area): void
  561.     {
  562.         $this->area $area;
  563.     }
  564.    /**
  565.      * @return ArrayCollection|Collection
  566.      * @Groups({"api"})
  567.      */
  568.     public function getComments()
  569.     {
  570.         return $this->comments;
  571.     }
  572.     public function addComment(Comment $comment): self
  573.     {
  574.         if (!$this->comments->contains($comment)) {
  575.             $this->comments[] = $comment;
  576.             $comment->setJournal($this);
  577.         }
  578.         return $this;
  579.     }
  580.     public function removeComment(Comment $comment): self
  581.     {
  582.         if ($this->comments->removeElement($comment)) {
  583.             // set the owning side to null (unless already changed)
  584.             if ($comment->getJournal() === $this) {
  585.                 $comment->setJournal(null);
  586.             }
  587.         }
  588.         return $this;
  589.     }
  590.     /**
  591.      * @return mixed
  592.      */
  593.     public function getScope()
  594.     {
  595.         return $this->scope;
  596.     }
  597.     /**
  598.      * @param mixed $scope
  599.      */
  600.     public function setScope($scope): void
  601.     {
  602.         $this->scope $scope;
  603.     }
  604.     /**
  605.      * @return mixed
  606.      */
  607.     public function getEmail()
  608.     {
  609.         return $this->email;
  610.     }
  611.     /**
  612.      * @param mixed $email
  613.      */
  614.     public function setEmail($email): void
  615.     {
  616.         $this->email $email;
  617.     }
  618.     /**
  619.      * @return mixed
  620.      */
  621.     public function getHomePage()
  622.     {
  623.         return $this->homePage;
  624.     }
  625.     /**
  626.      * @param mixed $homePage
  627.      */
  628.     public function setHomePage($homePage): void
  629.     {
  630.         $this->homePage $homePage;
  631.     }
  632.     /**
  633.      * @return mixed
  634.      */
  635.     public function getHowToPublish()
  636.     {
  637.         return $this->howToPublish;
  638.     }
  639.     /**
  640.      * @param mixed $howToPublish
  641.      */
  642.     public function setHowToPublish($howToPublish): void
  643.     {
  644.         $this->howToPublish $howToPublish;
  645.     }
  646.     /**
  647.      * @return mixed
  648.      */
  649.     public function getStartDateOpenLicence()
  650.     {
  651.         return $this->start_date_open_licence;
  652.     }
  653.     /**
  654.      * @param mixed $start_date_open_licence
  655.      */
  656.     public function setStartDateOpenLicence($start_date_open_licence): void
  657.     {
  658.         $this->start_date_open_licence $start_date_open_licence;
  659.     }
  660.     /**
  661.      * @return mixed
  662.      */
  663.     public function getLangueManuscript()
  664.     {
  665.         return $this->langue_manuscript;
  666.     }
  667.     /**
  668.      * @param mixed $langue_manuscript
  669.      */
  670.     public function setLangueManuscript($langue_manuscript): void
  671.     {
  672.         $this->langue_manuscript $langue_manuscript;
  673.     }
  674.     /**
  675.      * @return mixed
  676.      */
  677.     public function getCountryPublisher()
  678.     {
  679.         return $this->country_publisher;
  680.     }
  681.     /**
  682.      * @param mixed $country_publisher
  683.      */
  684.     public function setCountryPublisher($country_publisher): void
  685.     {
  686.         $this->country_publisher $country_publisher;
  687.     }
  688.     /**
  689.      * @return mixed
  690.      */
  691.     public function getLicence()
  692.     {
  693.         return $this->licence;
  694.     }
  695.     /**
  696.      * @param mixed $licence
  697.      */
  698.     public function setLicence($licence): void
  699.     {
  700.         $this->licence $licence;
  701.     }
  702.     /**
  703.      * @return mixed
  704.      */
  705.     public function getReviewUrl()
  706.     {
  707.         return $this->review_url;
  708.     }
  709.     /**
  710.      * @param mixed $review_url
  711.      */
  712.     public function setReviewUrl($review_url): void
  713.     {
  714.         $this->review_url $review_url;
  715.     }
  716.     /**
  717.      * @return mixed
  718.      */
  719.     public function getAimScoopUrl()
  720.     {
  721.         return $this->aim_scoop_url;
  722.     }
  723.     /**
  724.      * @param mixed $aim_scoop_url
  725.      */
  726.     public function setAimScoopUrl($aim_scoop_url): void
  727.     {
  728.         $this->aim_scoop_url $aim_scoop_url;
  729.     }
  730.     /**
  731.      * @return mixed
  732.      */
  733.     public function getAddedInDoajAt()
  734.     {
  735.         return $this->added_in_doaj_at;
  736.     }
  737.     /**
  738.      * @param mixed $added_in_doaj_at
  739.      */
  740.     public function setAddedInDoajAt($added_in_doaj_at): void
  741.     {
  742.         $this->added_in_doaj_at $added_in_doaj_at;
  743.     }
  744.     /**
  745.      * @return mixed
  746.      */
  747.     public function getLastUpdatedInDoajAt()
  748.     {
  749.         return $this->last_updated_in_doaj_at;
  750.     }
  751.     /**
  752.      * @param mixed $last_updated_in_doaj_at
  753.      */
  754.     public function setLastUpdatedInDoajAt($last_updated_in_doaj_at): void
  755.     {
  756.         $this->last_updated_in_doaj_at $last_updated_in_doaj_at;
  757.     }
  758.     /**
  759.      * @return mixed
  760.      */
  761.     public function getRecentArticleAddedAt()
  762.     {
  763.         return $this->recent_article_added_at;
  764.     }
  765.     /**
  766.      * @param mixed $recent_article_added_at
  767.      */
  768.     public function setRecentArticleAddedAt($recent_article_added_at): void
  769.     {
  770.         $this->recent_article_added_at $recent_article_added_at;
  771.     }
  772.     /**
  773.      * @return mixed
  774.      */
  775.     public function getWeeksBetweenSubmissionPublication()
  776.     {
  777.         return $this->weeks_between_submission_publication;
  778.     }
  779.     /**
  780.      * @param mixed $weeks_between_submission_publication
  781.      */
  782.     public function setWeeksBetweenSubmissionPublication($weeks_between_submission_publication): void
  783.     {
  784.         $this->weeks_between_submission_publication $weeks_between_submission_publication;
  785.     }
  786.     /**
  787.       * @return mixed
  788.       */
  789.      public function getGuide()
  790.      {
  791.          return $this->guide;
  792.      }
  793.      /**
  794.       * @param mixed $guide
  795.       */
  796.      public function setGuide($guide): void
  797.      {
  798.         $this->guide $guide;
  799.      }
  800.     /**
  801.      * @return Collection<int, Contribution>
  802.      */
  803.     public function getContributions(): Collection
  804.     {
  805.         return $this->contributions;
  806.     }
  807.     public function addContribution(Contribution $contribution): self
  808.     {
  809.         if (!$this->contributions->contains($contribution)) {
  810.             $this->contributions[] = $contribution;
  811.             $contribution->setJournal($this);
  812.         }
  813.         return $this;
  814.     }
  815.     public function removeContribution(Contribution $contribution): self
  816.     {
  817.         if ($this->contributions->removeElement($contribution)) {
  818.             // set the owning side to null (unless already changed)
  819.             if ($contribution->getJournal() === $this) {
  820.                 $contribution->setJournal(null);
  821.             }
  822.         }
  823.         return $this;
  824.     }
  825.     /**
  826.      * @return Collection<int, Report>
  827.      */
  828.     public function getReports(): Collection
  829.     {
  830.         return $this->reports;
  831.     }
  832.     public function addReport(Report $report): self
  833.     {
  834.         if (!$this->reports->contains($report)) {
  835.             $this->reports[] = $report;
  836.             $report->setJournal($this);
  837.         }
  838.         return $this;
  839.     }
  840.     public function removeReport(Report $report): self
  841.     {
  842.         if ($this->reports->removeElement($report)) {
  843.             // set the owning side to null (unless already changed)
  844.             if ($report->getJournals() === $this) {
  845.                 $report->setJournal(null);
  846.             }
  847.         }
  848.         return $this;
  849.     }
  850.     /**
  851.      * @return mixed
  852.      */
  853.     public function getHindex()
  854.     {
  855.         return $this->hindex;
  856.     }
  857.     /**
  858.      * @param mixed $hindex
  859.      */
  860.     public function setHindex($hindex): void
  861.     {
  862.         $this->hindex $hindex;
  863.     }
  864.     public function getSjr(): ?string
  865.     {
  866.         return $this->sjr;
  867.     }
  868.     public function setSjr(?string $sjr): self
  869.     {
  870.         $this->sjr $sjr;
  871.         return $this;
  872.     }
  873.     public function getTotalDocLastYear(): ?string
  874.     {
  875.         return $this->total_doc_last_year;
  876.     }
  877.     public function setTotalDocLastYear(?string $total_doc_last_year): self
  878.     {
  879.         $this->total_doc_last_year $total_doc_last_year;
  880.         return $this;
  881.     }
  882.     public function getTotalDocs3Years(): ?string
  883.     {
  884.         return $this->total_docs_3_years;
  885.     }
  886.     public function setTotalDocs3Years(?string $total_docs_3_years): self
  887.     {
  888.         $this->total_docs_3_years $total_docs_3_years;
  889.         return $this;
  890.     }
  891.     public function getTotalRefs(): ?string
  892.     {
  893.         return $this->total_refs;
  894.     }
  895.     public function setTotalRefs(?string $total_refs): self
  896.     {
  897.         $this->total_refs $total_refs;
  898.         return $this;
  899.     }
  900.     public function getTotalCites3Years(): ?string
  901.     {
  902.         return $this->total_cites_3_years;
  903.     }
  904.     public function setTotalCites3Years(?string $total_cites_3_years): self
  905.     {
  906.         $this->total_cites_3_years $total_cites_3_years;
  907.         return $this;
  908.     }
  909.     public function getCitableDocs3Years(): ?string
  910.     {
  911.         return $this->citable_docs_3_years;
  912.     }
  913.     public function setCitableDocs3Years(?string $citable_docs_3_years): self
  914.     {
  915.         $this->citable_docs_3_years $citable_docs_3_years;
  916.         return $this;
  917.     }
  918.     public function getCitesDocs2Years(): ?string
  919.     {
  920.         return $this->cites_docs_2_years;
  921.     }
  922.     public function setCitesDocs2Years(?string $cites_docs_2_years): self
  923.     {
  924.         $this->cites_docs_2_years $cites_docs_2_years;
  925.         return $this;
  926.     }
  927.     public function getRefPerDoc(): ?string
  928.     {
  929.         return $this->ref_per_doc;
  930.     }
  931.     public function setRefPerDoc(?string $ref_per_doc): self
  932.     {
  933.         $this->ref_per_doc $ref_per_doc;
  934.         return $this;
  935.     }
  936.     public function getFemale(): ?string
  937.     {
  938.         return $this->female;
  939.     }
  940.     public function setFemale(?string $female): self
  941.     {
  942.         $this->female $female;
  943.         return $this;
  944.     }
  945.     public function getOverton(): ?string
  946.     {
  947.         return $this->overton;
  948.     }
  949.     public function setOverton(?string $overton): self
  950.     {
  951.         $this->overton $overton;
  952.         return $this;
  953.     }
  954.     public function getSdg(): ?string
  955.     {
  956.         return $this->sdg;
  957.     }
  958.     public function setSdg(?string $sdg): self
  959.     {
  960.         $this->sdg $sdg;
  961.         return $this;
  962.     }
  963.     public function getCoverage(): ?string
  964.     {
  965.         return $this->coverage;
  966.     }
  967.     public function setCoverage(?string $coverage): self
  968.     {
  969.         $this->coverage $coverage;
  970.         return $this;
  971.     }
  972. }