/**
  * returns available states
  */
 protected function getStates()
 {
     $flags = (!isset($this->entry) || $this->entry->isOwner() ? ContestState::FLAG_USER : 0) + ($this->contest->isOwner() ? ContestState::FLAG_CONTESTOWNER : 0) + (ContestCrew::isMember() ? ContestState::FLAG_CREW : 0);
     if (isset($this->entry) && $this->entry->enableOpenSolution) {
         $flags += ContestSolutionEditor::FLAG_OPENSOLUTION;
     }
     return ContestSolutionEditor::getStates(isset($this->entry) ? $this->entry->state : '', $flags);
 }