Ejemplo n.º 1
0
 /**
  * Склоняет слово <var>$word</var> по нужным правилам в зависимости от пола и типа слова
  * @param NCLNameCaseWord $word слово, которое нужно просклонять
  */
 private function WordCase(NCLNameCaseWord $word)
 {
     $gender = $word->gender() == NCL::$MAN ? 'man' : 'woman';
     $namepart = '';
     switch ($word->getNamePart()) {
         case 'F':
             $namepart = 'Father';
             break;
         case 'N':
             $namepart = 'First';
             break;
         case 'S':
             $namepart = 'Second';
             break;
     }
     $method = $gender . $namepart . 'Name';
     $this->setWorkingWord($word->getWord());
     if ($this->{$method}()) {
         $word->setNameCases($this->lastResult);
         $word->setRule($this->lastRule);
     } else {
         $word->setNameCases(array_fill(0, $this->CaseCount, $word->getWord()));
         $word->setRule(-1);
     }
 }