/**
  * @inheritDoc
  */
 public function buildNarrative(Questionnaire $questionnaire)
 {
     if (AboutYouIsRedSpecification::isSatisfiedBy($questionnaire)) {
         $this->buildRedAboutYouNarrative($questionnaire);
     } elseif (AboutYouIsGreenSpecification::isSatisfiedBy($questionnaire)) {
         $this->buildGreenAboutYouNarrative($questionnaire);
     } else {
         $this->buildAmberAboutYouNarrative($questionnaire);
     }
     return $this->narrative;
 }
 /**
  * @param Questionnaire $questionnaire
  */
 protected function buildOverviewParagraph(Questionnaire $questionnaire)
 {
     switch (true) {
         case AboutYouIsGreenSpecification::isSatisfiedBy($questionnaire):
             $rag = RagScore::RAG_GREEN;
             break;
         case AboutYouIsRedSpecification::isSatisfiedBy($questionnaire):
             $rag = RagScore::RAG_RED;
             break;
         case AboutYouFeelingsAreAllZeroSpecification::isSatisfiedBy($questionnaire):
             $rag = RagScore::RAG_AMBER . '_neutral';
             break;
         default:
             $rag = RagScore::RAG_AMBER . '_mixed';
     }
     $overview = sprintf("score_about_you_%s_total_%s", $rag, $questionnaire->getRagScore()['rag']);
     $this->narrative->addMessages(self::SECTION_NAME, array('overview' => $overview));
 }